Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411507 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 08:12:48 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsCo-Op Pipe Laying Exploration - Clomper | Unity | WIP #63
Pages: 1 [2] 3 4 ... 7
Print
Author Topic: Co-Op Pipe Laying Exploration - Clomper | Unity | WIP #63  (Read 17694 times)
brainwipe
Level 1
*



View Profile WWW
« Reply #20 on: April 26, 2020, 09:20:00 PM »

Thank you, OctoMini, that's a great bit of feedback.

I agree. Sticking music behind videos where I'm just showing new features is fine but I think (in retrospect) that it's a poor idea for when I'm going into more technical issues.

Next time, I'll avoid music when going DEEP.

Thanks again.
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #21 on: May 03, 2020, 10:36:45 AM »

I definitely feel like I'm over a dev hump. The pick-up-and-drop feature, so key to many quests that I want to create, is over the difficult bit! It works reliably, the code is clean and I can move on with features that not only make for more interesting game dev but also make for better videos!

I've been experimenting with spring joints for moving objects around while being held by players and it's definitely the right way to go. I fire a ray out, if it hits something that can be picked up and the player clicks then it creates a brand new spring on the fly and attaches it to the player. That spring forms a flexible joint that can object physics constraints, colliders etc.

Coincidentally my day job has also recently passed a big hump and now I'm racing downhill for that too - which is fab. I don't think they are related in any way, pure coincidence.



Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #22 on: May 17, 2020, 10:16:09 AM »

Been a tough couple of weeks but I have got some pace back. The grinder is finished and I plough through doing a big chunk of the "pick up and drop" quest; which is core to the game play. I've also made a little LEGO Clomper, which took me about an hour. It weirdly gave me a better connection to my game; which I appreciate. It's sitting on my desk as I write this, filling me with a little bit of joy.



Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #23 on: May 24, 2020, 09:45:44 PM »

This week I was delighted to have finished the "drop" part of the "pick up and drop quest". The only complexity around it was ensuring that when the quest item was dropped that its internal state was set so that the Clomper had no ownership of it anymore. That meant ensuring the tag, transform parent, rigidbody kinematics and internal enum was set correctly.

Then I got stuck on a bug, which I've spent a lot of time explaining in this video. I think the prevailing wisdom is to you rigidbody.AddForce rather than MovePosition. So I'll get working on that now.





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #24 on: June 02, 2020, 01:34:32 PM »

I'm in the middle of a round of testing and bug fixing for the new feature. The feature itself isn't causing much negative impact on the frame budget but it has shown some areas in the code where I am being wildly inefficient. Mostly because it was code I wrote early on before I understood as much about the engine.

A gameplay video seemed like the right way to go for this devlog; the last one was in January and that had a much smaller subset of features.



Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #25 on: June 14, 2020, 10:25:27 AM »

I'm now in testing mode. There is not enough game, engine or polish to hand it to anyone but my son and I but it still needs testing.





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #26 on: July 12, 2020, 10:35:13 AM »

It's been a whole month of testing multiplayer and finding a barrel full of desync problems that lead to me rebuilding a bunch of systems. I'm delighted to report that it's pretty stable now.

I also found this month that I was suffering from some serious fatigue. I'm a morning person - springing out of bed at 6 and ready to rock and roll 15 minutes later. Know that I would be testing endlessly made it more difficult but there was an added drain. I think it might be the stresses of lockdown and doing my 9-5 with two kids in the house.

I hope that you're safe and doing well. Take care of yourselves!





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #27 on: July 19, 2020, 10:10:15 AM »

I've been learning more about what makes a performant scene in Unity this week. I have a target of 60 FPS on a modern PC and under certain circumstances, I can hit that. However I do have some real problems. After a week of experimentation (process in full in the video), I discovered that either I move to Universal Render Pipeline or I change the build of my main scene in HDRP to use fewer point lights.

I'm going to try and stick with HDRP as the lit steam and volumetric lighting is a winner.





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #28 on: August 12, 2020, 12:42:51 PM »

After much experimentation, I'm moving away from HDRP back to URP. I cannot get that framerate up (or rather frame budget down) no matter what I do. I got an enormous FPS boost with very little graphical detriment.

More than that, I've been struggling with migraine illness. Debilitating headaches that have had me off work too. I feel a little better now; managing to put together a dev log.





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #29 on: August 26, 2020, 11:52:09 AM »

I've got bugs in my wave function collapse algorithm but I'm sure I'll get through them. Some top tips for getting algorithms fixed:

1. Make sure you have an interactive debugger; you need to be able to set break points and step through to see the state of data in memory.
2. Fix the seed so that all calls to Random() are identical.
3. You might need to add more data structures to track the state inside functions that don't ordinarily keep state.
4. In Unity, you can use Gizmos for showing meshes and locations without actually moving meshes around.

The amount of time I've had in the mornings has been squeezed, which has meant that making videos takes longer than just a few hours at the weekend. I need to change the process to make it easier.





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #30 on: September 06, 2020, 01:40:02 PM »

Energy levels have been really low this week but I have managed to hunt and splat a few nasty bugs with my Wave Function Collapse procedural map generation. WFC is really sensitive to the organisation of your input tile set - even using the simplified "tiled" form of the algorithm.

After hitting bug after bug, I decided to create some Unity gizmos to visually show me what was going on with the organisation and adjacency. I can heartily recommend that.

I also found that my code became really clean thanks to the use of tuples and operator overloadng in C# - which I take time to explain in my longest video yet!



Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #31 on: September 14, 2020, 11:47:37 PM »

It's been a mixed week; my son's class was sent into isolation as someone got sick (he's fine) and my daughter hsa been having a growth spurt, turning her into an exausting nightmare. It meant a few late nights and the early mornings were tough.

But I managed to get Wave Function Collapse - a procedural algorithm for tile based map generation - working across an infinite space. The algorithm was designed to be used on a finite space but I'm pretty good with dynamic algorithms (shhhh don't tell anyone), so I could see a way that the harmonic space could be used. In short, I put in two boundaries - a distant one outside the view of the players and an inner one that the players can see. The outer space would remain "uncollapsed" into real tiles until the player got really, really near. It works for the simplistic tileset shown in the video and I think I can make it work for complex ones but that is an unknown as yet.

I'm also delighted to be invited onto Matt Bull's Indie Dev Chat this Wednesday (16th September 2020). I'm a big fan of watching devs talk about their stuff, so it will be quite an odd experience being on the other side of the camera for this one.

The next thing to look at is my adjacency algorithm, which is over simplified. Either I need some kind of adjacency map (probably not) or I need a hashed edge algorithm. Time will tell.





Thanks for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #32 on: September 22, 2020, 06:00:10 AM »

This week I've been implementing a better (more complex) edge algorithm. Because I'm edgy. Edgy like a sponge.

Unity doesn't support edges, so you need to make your own methods to extract the edges from the triangles. From there, you can work out how to find tile edges.

It caused a couple of bugs but I have a feeling where they might be, so I'm cracking on with them next.



Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #33 on: September 28, 2020, 07:55:23 AM »

The bug I was left with at the end of last week turned out to be trivial and that in itself tells us a lot about how sensitive procedural algorithms are to the simplest of functions. That sorted, I then embarked on a new feature that would allow me to use tiles that were something other than 1x1. This would be good for long shapes and less-square edges.

As I was progressing, I saw the complexity of the algorithm jump up a few levels. I am happy with complexity but the more complex your algorithm is, the more time it takes to tune. As I am working only before work each day, my time is somewhat limited. So I asked myself how much more fun the feature would make the game? Could I get the same fun in other ways. I decided that I could, so I wound the feature back and concentrated on the next jump - tile rotation.

Find out more in my latest devblog...





Thank you for following along!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #34 on: October 25, 2020, 02:39:05 PM »

I didn't manage to blog with the last video as I was harried by family. Wave Function Collapse with "set pieces" is now working like a charm.





Finishing my procedural algorithm felt great! However, it now forces me to face up to a a bigger problem: the chosen multiplayer library is not quite right.

I did consider writing one from scratch like Tom Weiland has demonstrated on YT but that felt more like work than I wanted. Instead, I went with a library. Photon Pun 2 seemed like a good fit at first but the central-server model is not required for a game where friends will join a host.

I've moved over to Mirror (an open sourced version of the original Unity networking UNet) and although I'm still new to it, I don't hate it. My code is looking a bit nasty but I'm sure that good patterns will appear as I write more.





Thanks for taking an interest!
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #35 on: January 16, 2021, 11:22:01 AM »

I've been on something of a journey with using Mirror networking. Fighting the system, trying to work with the system and then going a little sideways.

This first video really captures where I was in November. Yes, back in November. Holidays aside, I've been wrestling with this for 10 weeks now.





I think tried to do things the correct way. I talked a lot to developers who had some similar things and they had very complicated work arounds. It made my code horrendously difficult to maintain.





As if to finish of a triptych, I have finally managed to find a solution that doesn't cause desync errors, isn't too fat to code and roughly follows the spirit of how Mirror works.

https://www.youtube.com/watch?v=nkU-dgExUlI

It's a relief to have something that's reliable as testing multiplayer has been eating my time. There is lots more to do but I feel like I have a path forwards. That's more important than anything when you've taken on a big project.
Logged

brainwipe
Level 1
*



View Profile WWW
« Reply #36 on: January 24, 2021, 11:50:02 AM »

This week I've balanced game dev time with engaging people in the community. I've helped some devs debug their Mirror code (making some new friends while doing so) and given feedback on some new projects.

I've been hunting a bug to do with my procgen system, it seems to be fighting with my questing system - and winning.

While I was uploading this video, I realised what the bug probably is. I'll hopefully get to fix that first thing tomorrow morning before work.



Logged

Alain
Level 10
*****



View Profile WWW
« Reply #37 on: January 24, 2021, 10:52:11 PM »

I've been watching your videos for some time now. This one was nice as always, keep up the great work!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #38 on: January 25, 2021, 01:44:09 AM »

How have I completely missed this devlog until now? It's such a different type of game, I love it! Gentleman

Logged
brainwipe
Level 1
*



View Profile WWW
« Reply #39 on: January 25, 2021, 06:46:40 AM »

Thank you both for the kind words! I'm delighted that the videos are appreciated.

I feel very lucky that my idea for "the game I want to play" just so happens to be different from others. It's quite a large project and although I've been delivery software for over 20 years, they weren't games and they didn't require any community engagement in this way!

I was right about the bug. It wasn't really a bug. It was the algorithm doing exactly what I had told it to and I had forgotten to change it!  Cheesy
Logged

Pages: 1 [2] 3 4 ... 7
Print
Jump to:  

Theme orange-lt created by panic