Making an Immersive Farming Sim in 48 hours - Game Jam Devlog!
Embed
- Published on Jul 15, 2020
- Maelstrom.exe is a farming simulator controlled by console commands. You plant, grow and harvest crops to sacrifice to the Rain Sprites, who slowly bring a flood to end the age of Man. It is my submission to the GMTK 2020 Game Jam, who's theme was Out of Control.
Play it here! wintrmut3.itch.io/maelstromexe
This devlog documents my process of making it as well as some thoughts I had along the way. It's the most complex video I've edited so far, and I had a fun time making it :)
It's a calm, albeit melancholy experience that will take around 10-15 minutes to play. It is accessible via browser, but the PC version (Windows Only) can be played in fullscreen, 1920 x 1080 resolution. Please use headphones.
------
Edit: Software used in this video:
Storyboarding: Krita
Pixel Art: Aseprite
Game Engine: Unity 5
Code Editor: Visual Studio Code
Digital Audio Workstation (DAW): Audacity
VSCode Theme: 1984 - Fancy/Cyberpunk
----- Film & Animation
I also have a website, where I've written up a brief postmortem on the game. I also have a few Unity tutorials and a heck of a lot of Blender ones, all free.
www.wintermutedigital.com/post/gmtk2020_postmortem/
@fmaddict07 search "asesprite" in google (the name is asesprite)
Which engins you used
WOW NICE
May I ask, what application did you use for creating your tileset? :)
Hi
"I'm not depressed, I just like rain a lot" is a huge mood
Rain is just awesome
@Wintermute Digital oh and also, of course: great game mechanics, I really like the idea :D
Ahaha
Possibly to make this into a full game when you beat it you can “ascend” where your progress is reset, but you get more space, and it take more rain to submerge the world. More plants would be cool. It would be awesome to have a infinite version. It’s a very relaxing game.
@Daniel Rayson *do it*
I mean nothing’s holding you back..
I wanna grow plants on clouds and on Mars :D
@Edson Luiz Brasil Filho Yeah I had that in mind this whole time! Very good video none the less!
i smell cookie clicker farm
That's a super cool idea! I think a prestige/NG+ system would be super cool to implement, and I'll add it to the list of future ideas :)
The vibe is really atmospheric and I enjoyed your game a lot! Keep it up:)))
@Tyler Baker in common modern english, vibe can refer to something like "atmospheric" but it can also mean "the feel of something"
so more verbose, they are saying "the feel of this video is a very chill mood" instead of "The chill mood of this video is a very chill mood"
synonyms*
how can a vibe be atmospheric, those are almost synonym
@Wintermute Digital I'd think the same thing if I didn't remember the opening song from one of H3H3's old skits
Thank you so much!
13:12 What's an array?
Seriously though. This guy can do programming, art and music. So talented
@JonBrk hes using a switch case lol, no difference...
At least it's not if else if like yanderedev would do 😂
Overrated. Switchcase-masterrace
@TheBamButz I know what OP meant and completely agree, I said he could also store the ConsoleController Component against a variable so he doesn't have to use GetComponent() multiple times. Also, storing it in a variable means Unity only has to look for the component against the gameObject once. This also helps readability.
Cool idea. Would love to see ab expanded version where you can increase the size of your grid. Maybe with more plants and stuff. Dig the music track.
Game development so next level that he coded and did the art at the same time
Hey, just wanted to let you know that in C# you can do int [ ] [ ] and int [ , ]. Just don't forget to initialize the arrays :)
came to the comments for this
Ahh I should have guessed someone else would have noticed.
Note that the two are very different. One gives you an array of arrays, the other gives you an actual two-dimensional array. Both have their place, but you'll probably usually want the latter.
Thank you, I was just messing about with the code and I should have checked on that more thoroughly.
Awesome game! However the transitions in the video are a little weird and out of place, but I subscribed!
@Aske K. Lange Yeah I agree, the Bebas font looks really nice imo but the kerning is awful. I can manually adjust the kerning inside Unity using some plugins, but unfortunately Blender doesn't have that option when video editing, so I have to insert 2-3 spaces between words XD
@Wintermute Digital Sorta like em, however, the kerning on the text, is, well, not good:) Nice vid, however
@Kai Niebes Haha I'm glad but honestly I was placing them very randomly 😅
@Wintermute Digital The transitions are what convinced me to completely watch the video. Tastes are different 🤷🏻♂️
Haha I'm working on it, I was experimenting with making my own transition masks in Blender, but clearly that hasn't turned out :P I appreciate the sub!
The art is very nice for the plant tiles, I like the slight movement of the tiles up and down!
The game looks quite fun. Will have to give it a play this weekend. Enjoyed your video except for the strange transitions and self deprecation. Boost yourself up with positive thoughts instead of calling yourself an idiot. Good luck as you continue your journey!
Whenever I see such a cool game made in this game jam, it makes me even sadder that I missed it :(
Great work!
Did ya win, son?
No seriously, did you win the hackathon - the game is amazing
@Wintermute Digital this is a very interesting and fun game and it more than deserves it's place not gonna say it deserves higher as I don't know the other games but still great job on managing to make this in 48 hours!
@Wintermute Digital bruh thats so sick! congrats!!!!
no
Congrats, man! Amazing work
@Wintermute Digital that's awesome! Congrats!
Impossible that anyone is really this talented. Amazing job, going to go play now!
Just played it! Really do love how it looks and sounds, and you've already gotten a million notes on the gameplay itself so I'll refrain from that.
My own problem was that I was harvesting a ton of plants and then mass sacrificing a ton of them at the end. You said there were around 20(?) bits of story and flavour text but I got so preoccupied with managing the little garden that whenever I sacrificed, I'd skip like 8 story bits or something and ended up missing most of it (I got like 3 pieces of unique dialogue, not counting the beginning one). It was very sad.
10/10 on the relaxation and chill factor though!
@Wintermute Digital Wow, I wasn't expecting to get a reply! Thanks for caring about your players, and I'm definitely curious as to what future games you may also make!
Sorry about that! I have all the dialogue snippets on my website to compensate for this bug at wintermutedigital.com/post/gmtk2020_postmortem/. Of course, it doesn't feel the same, but yeah that's one of the larger things I'd like to fix when I get around to updating this.
Really like the concept. Rain effect feels good, since everyone knows when its raining, you dont have to water plants (and there is no water option). I only miss some kind of "story" or further interaction with the game. To build relationship with it (as a player...). Thanks for sharing.
I think that would be awesome to add some more story/interaction. If I do work on this further, it's definitely something I'll do. Thank you for your thoughts and ideas :)
Very insightful commentary on your development process. I learned a thing or two by watching this video, and I thank you for that.
I Also gave Maelstrom.exe a try, I quite enjoyed it, I thought you nailed the immersion part. To anyone reading, this game is best enjoyed in a dark environment in fullscreen.
This is really interesting. I have been thinking about it since yesterday. Do you think cloning this would make for a good beginner project? Would you be open to someone doing that?
I know a couple of people have already commented about the removing items when enumerating through a list. But here's my list of suggestions:
- Functional programming way: recreate the list with all elements you want to keep (otherwise known as a filter, I think in C# this is the Where method) and then reassign it (my personal preference)
- Iterative way: store the elements you want to throw out, then remove them from the original list (in C# you can use the Except function for this)
- Iterative way #2: as others have mentioned, for-loop in reverse, but imo pretty hacky and unreadable
- C# specific way: use the RemoveAll method and pass a predicate (my second fav, short, using the C# core lib to full potential and no need for reassignment)
Ooo that is a lot of really cool functions I didn't know about! Thank you so much :)
What a simple and well executed idea. Love the result! Looking forward to seeing more from your channel in the future.
Thank you! Cheers!
I love the effect of the plant beds bobbing up and down and the pixelated shadow growing and shrinking. It breaks the rules of pixel ever so slightly, but in the perfect way.
The pixel art is incredible! I like all the gradients and calm colours that gave the game a great atmospheric vibe B)
Thank you! I'm glad that you got that sense from my game.
Really nice video it really inspired me and I hope that I'm good enough to participate in the next years gamejam aswell :)
There are multiple ways to remove items from a list in c#:
The easiest way in your case might been the RemoveAll() Method if you give your plants a boolean property to delete, if they should be sacrificed. (The bool property is not necessary but might make it easier)
Example:
List Plants = new List() {some amount of Plantobjects };
Plants.RemoveAll(plant => plant.IsSacrificed == true); //this removes all plants which have the bool-flag set to true. Other bool statements can be used here aswell (like plant.Age > 5)
Another simple way is using a second List.
Example
List Plants = new List() {some amount of Plantobjects };
List PlantsToRemove = new LIst();
foreach(Plant p in Plants) //this foreach-loop is just for demonstration. There can be another logic to fill the PlantsToRemove-List.
{
if(p.IsSacrificed == true)
{
PlantsToRemove.Add(p);
}
}
foreach(Plant p in PlantsToRemove)
{
Plants.Remove(p);
}
That is a really cool idea. I love the console control aspect of it. Allowing the player to use functions, loops, and what not would be a cool and unique take! I would buy it. Either way great job and keep up the good work!
I love the idea of this, you should keep working on it and make a fully fledged game.
@Wintermute Digital if you added a system where you could sell the crops you grow to buy seeds and have like an economy with limited money and seeds i think it could be interesting, thats just me though lol, i would honestly love to play this! :) good job
Do you have any ideas about where to go with this? The game loop is a bit limited, and I don't really know what direction I should/could extend the game towards. Perhaps a currency system/shop? Combat? Crafting? It seems like there's a lot but I don't really know which way to go in. I'd be super grateful if you had any thoughts about the direction I could expand in!!
Super relaxing to play. Im thinking of implementing text interface in my game because of this. I think more games should have this.
Best of luck! If you have any questions let me know :)
This is awesome, I actually always think about this little game you made and it motivates me to learn C# and unity. Thanks for this video!
Super cute game! I need to check that out later. I love the mix of a farming game with computer elements.
I'm surprised that you wrote the plot stuff in a switch instead of a ScriptableObjects with a string array (which would have also removed the need for a switch in the first place), but... late nights do weird things to all of us. You did great completing your game!
I also like your video style. Very calming.
Love the game! SUPER relaxing :) Awesome job!!
It's one of the most unique projects on this year gmtk jam. Awesome!
🙏 🙏 😊
thank you for making this video. this is actually very inspiring!!
this video was really entertaining, such a good youtuber with a cool game too! i hope you end up like Dani or any big game dev youtubers.
Hello fellow game jammer! I'll go give your game a shot, I wish I'd seen it earlier so I could've rated it.
It looks really nice, your pixel art is fantastic! I'm going to go try it out right now :)
The video was damn fun, Keep up the good work :)
Subbed! Awesome game, looks amazing too. Love the command line idea.
This is like a lofi radio in game format. Loving it. Any plan on keeping it updated? Would love to have it on my Ipad. Subbed! Keep it up!
Wintermute Digital Thanks for reply! Looking forwards to future project! (:
That is the absolute best description why didn't I think of that!! This is definitely like a lofi game. As to updates - I have much to do and school starts in a month, so I won't make any promises about when I'll update this, but I will come back to this game someday. I don't think a future branch of this project will ever be developed for mobile/tablet, but perhaps a similar project for next summer will. I really appreciate the comment and your interest :)
This looks like a great jam game, nice devlog video! I started using LMMS as a DAW for this jam, and I'm pretty pleased with it, so you could look into trying it. Also, when enumerating through ordered lists of elements and removing elements, the most correct but complex solution is to use iterators, but the easiest solution is to just go back to front through the list.
@Wintermute Digital happy to help, keep learning!
I appreciate the suggestion! And I've had several suggestions about enumerating through lists, the back to front thing is brilliant and I've just recently understood how that works because of people like you so thank you :)
Just stumbled across this. Its really impressive. I just started learning Unity and to Code in C#. Hope someday I be able to get a project like this done with self created pixel art and music :) How long did it take you to get so far?
i love this so much, the vibe is amazing. carry on :')
This video just showed up in my feed and I'm realy happy it did. The game concept is realy cool, but i missed the out of controll element. I will watch the playthrough next though, mabe it'll get clearer then. Also the style of the video was great, the only things i'd criticise were some of the transitions which were to flickery. You definitly got my sub :)
Oh apparently the playthrough isnt out yet. I'll wait then :)
Thanks! I recorded a playthrough already but I'm not sure if I should be talking over it. Thoughts? Also I will try to suck less at editing next time.
Hey ! Very impressive job ! Do you plan to make the source code of the game Open Source somewhere ? I'm very curious about how you managed to do certain things that I didn't understood with your video.
I'm very much interested into TextMeshPro which I don't understand how it works. I have also not understood what "Scriptable Objects" you told about at 9:23 are
I'm not planning on open sourcing the code seeing as it's a terrible mess of garbage and I wouldn't want someone to learn the completely wrong technique from it, but if you have any specific questions, I'm happy to answer them.
Scriptable objects are sort of like custom groupings of data (eg. a Plant → (Name, Description, Cost, Growthrate) that can be set in inspector and have a ton of advantages. There are many tutorials explaining their utility, so check those out. Docs: docs.unity3d.com/Manual/class-ScriptableObject.html
As to understanding TMPro, I suggest you work with normal UI text first, then working with TMPro should be a breeze. It's just an extra layer of functionality on top of Unity's GUI system, and when working with UGUI, you'll see things that it would be nice to have (eg. custom kerning, more justification options, autocapitalization, gradient shading) for which TMPro fills in the gaps and implements. It's just a package that creates an alternative to the standard unity UIText with a bit more functionality, but it's in no way necessary.
This is awesome! Great Job!
Would be even better if it would be a wallpaper in wallpaper engine
Take a look at tweeing (like DoTween). It's realy helps you with animations, especially UI. It has build-in easing and very good and easy inetrface, thus making you code much cleaner
@Mathue Unity animation system is quite clunky and requires allot of work with ui and components, compared to a few lines of code, especially if you are using smth like DoTween
It's just a personal preference - it can be useful and I know it's super powerful, but I have an easier time just doing everything in code as it feels more flexible and I have greater control the animation of things, especially for simple projects.
@Wintermute Digital May I ask, why such distain for Unity's animation system? (mecanim)
I will check it out. I've heard of it from Game Dev Guide I think, but I basically have my own implementation of a code-based UI animation - I didn't use Unity's animation editor for anything :)
Great job man that game looks good ✨ you should make it mobile game that would be so great
I really enjoyed watching this. id just like to point out though, the transitions felt a little jarring in the video, but other than that, the content of the video was very entertaining and i thoroughly enjoyed it! keep up the good work!
Thank you! I appreciate that, and I did go a bit overboard with the transitions, but in my defense I animated them myself and I was excited to try them xD I promise to use more restraint in future.
The best part of these gamejams is watching all the devlogs that come out if it
I would absolutely love to see this as a full game
@Wintermute Digital why not have a type of acension that expands your grid and alters the story a lil the next time through, and after maxing out the grid you can maybe make new world's to unlock like in the mountains, by a river, in a jungle, etc with limitations on what type of plants are able to grow there with different versions of the story? You can maybe even add certain events that have a chance of happening every day like acid rain, a bad harvest, snow storms, etc it would probably help with the simulator feel as well as increase the challenge a lil, I know this is probably a lot of work i just thought I'd throw around some possible ideas if you ever do decide to make this into a full game
@Wintermute Digital Yeah, it is a fresh idea as of now. Looking forward to your project.
@ジンロウJinrou That is an incredible idea wow! Definitely something I'll think about more.
@Wintermute Digital maybe turn it into a rogue-lite planting sim? Would be awesome to merge those two genres.
@Wintermute Digital Make the farming sim a smaller part of a larger survival sim. maybe on mars or something.
Really cool project! Good job! :)
You did so much work in 48 hours!
Nice work, love the idea!
Hey there, with lists I find it easiest to just keep multiple. Save the data of the one you plan on using to a variable, copy the rest of the items to a temp list minus the one to be deleted, wipe the first one, copy the temp list back.
@Wintermute Digital Something I've done which is probably a bit more simple (though probably also not the best) is to create a local scope temp list prior to iterating through the list which you need to delete elements, and when you come across an element which needs deleted, add it to the temp list. Then when you finish iterating through the list, you can iterate through the temp list and remove/delete each one as needed with that reference. Assuming you're not deleting most of your list, this is probably better than copying non-deleted elements back and fourth.
Also, great job on the game!
@Exquisite Dog I'm not too comfortable interacting directly with datastructures with C# and I'm happy to go with a suboptimal route in a game jam. That said, if I was a better programmer, I probably would have started with a linked list but I'm not so I used foreach to iterate through the list xD. Honestly I really appreciate the programming suggestions, and I like seeing the ideas, no matter how inefficient :) Thank you for the idea friend!
I wouldn't use this method for a penny. Linked list are made to propose add/delete functionality with a O(1) cost. Why not simply iterate through the list and when deleting simply take the next element (using iteration or with next() accessor) ?
I didn't consider holding on to multiple lists, maybe because that seemed a bit overkill but that's actually a really nice solution to copy over the 'not-deleted' items to a new list rather than directly deleting some items and copying back. I will keep that in mind if I need to do this sort of thing again. Thank you for your clever insight friend :)
his voice is very calming, so glad i found this
“Let yourself become immersed”
I see what you did there
This is one comfy looking game. 10/10 :)
Whenever I loop through a list and remove things as I go I find that it works to just decrease my incrementer by 1 each time I remove an item. Hope that helps a bit, I don't use c# much so I'm not sure if it will work for you.
I think there's a lot of good solutions to this problem and yours also works, but only if you're using a for loop (I think the decrement by 1 is to not end up with you checking out of bounds array indices). Since I'm using a foreach loop, I think I'm, like, attaching a scaffold to a building and then looking in the windows to check the value on each floor, so if I was to remove a level, the whole building + scaffold would collapse. I probably should've just used a for loop. Your solution is elegant and simple and doesn't overcomplicate things, which I really appreciate
This game looks like a beginning of one of those supercomplex games that reviewers like Sseth reviews.
Not gonna lie, the art, look and feel is really nice! :)
Esta muy bueno, inspira bastante!
Cheers from argentina :D
Looks like a very relaxing aesthetic. Kind of the opposite of what I made.
I need a complete version of this.
I like the vibe. Great job !
I like that you animated the drop shadow separately
7:00 i think that’s because arrays in C# support multiple dimensions, something like int[][] might seem like a 2D array, but it’s an array of arrays, int[,] is actually a 2D array, and especially for fixed size data structures (like an int, 32-bits) it would be more efficient, as storing arrays of arrays you don’t know their lengths in advance (well, the compiler/outer array doesn’t), and then you need to look up in that outer array where the array you want is, and then in *that* array you *again* get the element you want, with an actual 2D array you just do something like x * width + y and only a single array has to be kept track of
No expert on the subject, but i’m pretty sure this is the difference, because the 2D array you have the rows a fixed size, but in array of array you only have the amount of rows fixed, and then each row can actually vary in length
This is the kind of content I like on TheXvid.
Ooh, it's like the Kekujira aeromancy card in Underhand, but a full game! Neat, I always loved the idea behind wishes gone bad. Very well done!
I feel the game has potential but after playing it for a few minutes I felt like it lacks something I can't describe.
Dude your transitions are so cool and visually interesting, of course the whole video is really cool but hot daym those transitions!!!!
the game style and the coding style throughout the video give me some ideas
i like this art and peace, thanks
Look rly nice i love that they have commmand qn the sprite are ammazing
Realy love the concept man I spent a whole hour playing around with it
Wow! That's longer than I've spent playing it! XD
Love this type of content. I'm wanting to get into what your doing. How did you learn to code and get into this?
@Kyle Hawyes If you're interested in a short tutorial on making games in general, check out Extra Credit's Making your First Game miniseries. thexvid.com/video/z06QR-tz1_o/video.html (You might have watched this already but if not, take a look!)
Ok thanks. Yeah I’m currently doing Unity tutorials and their summer coding camping and been learning a lot. Will keep grinding
I think the best way to do this is just to learn the fundamentals of a technology through tutorials/official resources (Eg. Unity Learn is free for students!) and then come up with a project and jump in. Game jams/hackathons are great for fast learning but can be a bit exhausting too. Anyone else have any suggestions?
The way you do sacrificing random stuff while iterating is basically to just have an RNG roll a die on every iteration of the loop.
If the die rolls the magic kill value, you just replace that entry in the array/list/whatever with an empty placeholder value of your choice, "null" is usually fine.
It's probably better to have a plant object with an id and set the id to -1 when you remove one. That way you don't need to keep nullifying objects and recreating them plus you never get nullpointers.
Hello, what VSC extensions do you recommend to work with unity?
You should share the source code if possible! Great work btw
It's honestly a pile of trash spaghetti code that you really don't want to read :P
Amen to the intro.... I tried to develop my first game with too much in mind and lets just say it didnt go well lol... now im scaled way back to 2d projects which im finding way more enjoyable for solo deving
Great video! What program do you use for pixel art?
Aseprite! It's the best. Also, check the description as I will put software used in there.
I really like your voice. Low, calming, sincere.
(Just incase you haven't figured it out yet)
If you need to modify a collection while enumerating over it you might need to use a raw for loop instead.
You could also create an array to store the indicies of the elements you want to remove, then iterate over that list aftwewards and remove those indices.
Thank you! That second idea is pretty cool, and I might use it :)
C# Array Syntax
C# arrays can be both jagged (Type[n][]) and multidimensional (Type[n,m]). The difference is that jagged arrays allow varying length in the extra dimensions, e.g. A jagged array might contain:
1, 2, 3, 4
1, 2
1, 2, 3
Where-as multidimensional are a matrix:
1, 2, 3, 4
1, 2, 3, 4
1, 2, 3, 4
Multidimensional arrays are usually faster, because a jagged array is simply an array of arrays (and so has an additional level of indirection/pointer).
I'm familiar with the concept of jagged arrays, and I should have done some more research before talking about them in C#. I've almost never found a use for jagged arrays while programming so I guess it didn't come to mind. Thank you for the really great explanation though!
this is really cool and I like it. though the editing feels a bit off. anyways, still a great video.
Thanks! I will make the edits less crap/experimental in future.
I love this game! I do like the notion of making sacrifices to a higher power.
However I wanted to ask something regarding your code. Couldn't you have refactored a lot of the class names to be a little more concise? For example "ConsoleController" could be "Console", "BoardManager" be "Board" or "TileManager" be "Tiles". Do you feel like there is a gain from adding "Controller" or "Manager"? I'm debating this for myself and feel like I really don't need those around 80% of the time. What's you take on this?
And good luck with your ongoing Projects. You definitely earned a sub!
Thanks for the question Janik! I haven't thought about that too often, and yeah it does seem a bit silly to append "manager/controller" randomly to the names of scripts. I think my reasoning behind this is that:
1) I might have some sort of scriptable object class I want to call "Tile" and create actual Tile objects off that class, so having a Tile object and a TileController component has some utility there, and:
2) I might have to reference the Board or Console Gameobject in the code, in which case I could call it something like "BoardObject" which is controlled by a "Board.cs" component as you suggest, but I personally prefer to call the gameobject "Board" and the component "BoardController.cs".
I do think though that using "Manager" and "Controller" randomly can be a bit confusing as I don't make much of a distinction except what sounds better (lol) so that's definitely a problem I need to work on. Cheers!
I'd love to have a look at the source code for this to see how it was all put together. Even if it's spaghetti code I'd still like to know how it all works. I quickly looked online for some sort of tutorial that would make a game like this but couldn't find anything. Awesome submission btw
@A Very Lost Pikachu wow thank you! I'll check it out now! 😊
Mathew Kenshin GMTK has a video explaining how it works, going through each of the steps the program goes through in order to process the inputs. thexvid.com/video/bCJw4hQkPj4/video.html
@Wintermute Digital wow thank you! If it is that easy it shouldn't take me too long to get everything working. I've never been so inspired by a gamedev video haha so thank you so much. I'll let you know if I end up making something cool with it 😊
@Mathew Jenkins I'm also kinda terrible at coding, but if you're interested here's the spaghetti source for the console: pastebin.com/wmK02SL4
Hopefully you can get something out of that but honestly it's not that hard, and I'm just calling simple functions you can look up anywhere. Perhaps you could search up something like coding a text adventure and find some way to encode these things. I may even make a tutorial someday but I really need to rewrite everything here. Cheers!
@Mathew Jenkins Event[0] was super cool, and it does strike me as similar but I didn't think of it while coming up with the idea for this game :P Input fields are completely new to me too, but they're actually incredibly easy to handle - you can just get the text that's typed in with something like GetComponent().text. Then, I literally just ran a switch statement over the text they typed in, and executed the first word (using string split) and wiped the input line when the user presses the enter key :)
Could you make a (vscode + c#) setup video? (how to make a solution etc.) In any case, a wonderful game you've made! +1 sub
I think there are tutorials on that already but I'll do some research and if I can't find a good one I might make a tutorial of my own :)
Weathering with you was really good, except in my theater a bunch of people kept talking during climactic parts like the standoff in the parking deck at the end 😟
Nice!!! We're adding a farming simulator element to our game too! Going to steal some ideas :P
I think a particle system would have been better for your rain implementation, instead of initializing so many raindrop gameobjects.
I do clean up the raindrops, my whole raindrop system is basically just a barebones implementation of the particle system. It was a lot easier, because I'd have had to written a lot of code, made a lot of materials to swap raindrop sprites, and figure out how to set the rain to a custom direction. I was also planning on having the rain "splash" on the console/tiles, which I have no idea how I'd go about doing with a particle system, but which I do know how to do with rigidbody/colliders. :P
Only I can't watch things like "GameObject.Find / .GetComponent in ~20 cases" :D
It's better to cache it once in Awake, than always assigning component. An even better solution is to make private variable with "[SerializeField]" on the top. It's allowing you to drag and drop object in the inspector window. (Just like 'public' fields, but without making your code spaghetti.
Can you imagine an AAA game where everything is searched for among hundreds of thousands of assets? :D
Good job/vibe anyway!
*YandereDev sweating*
I was literally going to post about the same thing. Seeing those switch cases with the same GetComponent in each case game me anxiety xD
@Wintermute Digital I am glad that I could help you :D Good luck with your further projects
Haha I never said I was a great programmer! Caching is definitely better than calling GameObject.Find and GetComponent a squillion times, and in non-game jam projects I tend to write better code :) Thank you for the tip about making private variables editable in the inspector!
Very cool! Curious how did you learn all that
Thanks! It has been a lot of practise making successively less bad games, but iteration on poor ideas to make better ones has always helped. For example, I (re)learned in this project that switch statement cases can fall through and you can have multiple cases apply to a block, which I should have known :P
This turned out cool!
I totally enjoyed ur video but the transitions bothered my eyes it was too flashy sorry 😊 did give ur video a like tho
@Wintermute Digital I think they're cool but could be toned down a bit to be a bit less jarring
Thank you, and I apologize for the transitions. That was the result of a misguided experiment with transition masks and I will look up a tutorial next time.
I feel like you, me and another artist I know could rule the whole god damned world... xD
If you're looking for a DAW, I'd personally recommend Reaper. It doesn't come with a whole lot in terms of effects and instruments, but you can cover most of what you might need with free VSTs (Helm is a must-have), and the $60 price tag is unrivaled in affordability. The audio routing capabilities are really something to behold, and using it is quite intuitive. There's a quite long free trial if you want to give it a look.
@Wintermute Digital Not a problem! If you ever need some help using it - some things are not quite so intuitive, but for the most part it's fairly straightforward - please never hesitate to ask at reilly#1078 on Discord. I would also highly recommend looking at the channel Reaper Mania, they have a jaw-dropping amount of tutorials.
Thanks! I have looked into Reaper before, and you seem quite experienced with it. I will check it out again, as I do need a DAW pretty desperately at this point. I appreciate your expertise :)
this gave me inspiration to try to make a similar game using c# console
Good luck! I hope you update this with a link to your game sometime :)
I love the idea of using the CLI as a controller. I wonder if a fun game could be made using Linux-like piping to chain commands together. 🤔 Love your channel style and edit, sub'd
Really? That's pretty cool! I've already stolen some Linux commands (eg. Cat to display the description of a tile) but piping would be on a whole other level. My console "commands" are very hardcoded at the moment, and I have no idea where I'd even start with chaining or what use that would have at the moment, but it's a really cool concept to think about and maybe use later!
Basically a text adventure. The Infocom and the Magnetic Scrolls parsers already used command chaining back in the 80ies.
can you make a guide on how to make an isometric game like this?
Really good job mannn !
very interesting, good job
#QualityContent
Did you ever figure out how to remove something from a list you're currently iterating over?
There are 3 very common ways of doing so:
1. Iterate through the list backwards. If you remove at index 5, the loop doesn't break because the next iteration will be index 4.
2. Make a new list and add all items you want to remove into it. Once you're done with iterating, you can now safely loop through all your "saved for delete" items, and remove them from your main list.
3. (I almost never use this) Every time you remove an item, you decrease your current index, so when you go to the next iteration, you're back at the same index as the previously deleted item.
I saw that first suggestion on stackoverflow when I was searching it up, but I didn't understand it then. But I think I get it now, thanks to your explanation - so the reason that you'd go over it backwards is that when you remove objects from a list, indices greater than the one you removed sort of fall down one, and their values are modified, but indices lower are unchanged, so you can still remove element 2 after removing element 5 if you go backwards, but if you removed element 2 first, element 5 becomes element 4, and you've just messed up your list
Thank you!
how did you manage to use visual code with unity ? i never got the plug ins right :( also love the transitions and the game, its good to find another good and inspiring devlog !
@Wintermute Digital ah my bad, well, either ways thank you for answering me ! Looking forward to your next video :D ( secretly hoping it's a vs code tutorial xD )
I will perhaps make a tutorial on my setup for VSCode and Unity, I actually had a tutorial in the works but it seems like many others have already done so and I don't think I have much to add :/
I like that you added ability to press up to get the latest command you entered (and the ones before that). But you should have made it so that it doesnt just take whatever last line was in the console (Ergo: also the ones created by the console itself and not you) this is really irritating. You should also have added ability to press down enabling user to go back and forth in the command-history.
Fun little game but I feel like more could have been added. It's a bit dull