Making an Immersive Farming Sim in 48 hours - Game Jam Devlog!

  • 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!
    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 & AnimationFilm & Animation

Comments • 495

  • Wintermute Digital
    Wintermute Digital  Year ago +110

    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.

  • Raven Stormcliff
    Raven Stormcliff Year ago +804

    "I'm not depressed, I just like rain a lot" is a huge mood

  • honeyleaf 24
    honeyleaf 24 Year ago +363

    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.

    • Too Many Choices
      Too Many Choices Year ago

      @Daniel Rayson *do it*
      I mean nothing’s holding you back..

    • Daniel Rayson
      Daniel Rayson Year ago +2

      I wanna grow plants on clouds and on Mars :D

    • ApplePuncher
      ApplePuncher Year ago +5

      @Edson Luiz Brasil Filho Yeah I had that in mind this whole time! Very good video none the less!

    • Edson Luiz Brasil Filho
      Edson Luiz Brasil Filho Year ago +26

      i smell cookie clicker farm

    • Wintermute Digital
      Wintermute Digital  Year ago +100

      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 :)

  • chen_dll
    chen_dll Year ago +426

    The vibe is really atmospheric and I enjoyed your game a lot! Keep it up:)))

    • Waporwave
      Waporwave Year ago

      @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"

    • Tyler Baker
      Tyler Baker Year ago


    • Tyler Baker
      Tyler Baker Year ago

      how can a vibe be atmospheric, those are almost synonym

    • Waporwave
      Waporwave Year ago

      @Wintermute Digital I'd think the same thing if I didn't remember the opening song from one of H3H3's old skits

    • Wintermute Digital
      Wintermute Digital  Year ago +20

      Thank you so much!

  • Indiana Kernick
    Indiana Kernick Year ago +115

    13:12 What's an array?
    Seriously though. This guy can do programming, art and music. So talented

    • He Ro
      He Ro 28 days ago

      @JonBrk hes using a switch case lol, no difference...

    • JonBrk
      JonBrk Year ago +2

      At least it's not if else if like yanderedev would do 😂

    • Braken the Mole
      Braken the Mole Year ago +2

      Overrated. Switchcase-masterrace

    • Nocturnal Games
      Nocturnal Games Year ago +1

      @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.

  • Joey Bellas
    Joey Bellas Year ago +64

    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.

  • Endimine Imelver
    Endimine Imelver Year ago +7

    Game development so next level that he coded and did the art at the same time

  • Tomcat Indie Dev
    Tomcat Indie Dev Year ago +47

    Hey, just wanted to let you know that in C# you can do int [ ] [ ] and int [ , ]. Just don't forget to initialize the arrays :)

    • Peter Erichsen
      Peter Erichsen Year ago

      came to the comments for this

    • sacredgeometry
      sacredgeometry Year ago

      Ahh I should have guessed someone else would have noticed.

    • Luaan
      Luaan Year ago +5

      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.

    • Wintermute Digital
      Wintermute Digital  Year ago +13

      Thank you, I was just messing about with the code and I should have checked on that more thoroughly.

  • Sharkycat109
    Sharkycat109 Year ago +156

    Awesome game! However the transitions in the video are a little weird and out of place, but I subscribed!

    • Wintermute Digital
      Wintermute Digital  Year ago +2

      @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

    • Aske K. Lange
      Aske K. Lange Year ago +1

      @Wintermute Digital Sorta like em, however, the kerning on the text, is, well, not good:) Nice vid, however

    • Wintermute Digital
      Wintermute Digital  Year ago +12

      @Kai Niebes Haha I'm glad but honestly I was placing them very randomly 😅

    • Kai Niebes
      Kai Niebes Year ago +12

      @Wintermute Digital The transitions are what convinced me to completely watch the video. Tastes are different 🤷🏻‍♂️

    • Wintermute Digital
      Wintermute Digital  Year ago +33

      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!

  • VuVuu Inc.
    VuVuu Inc. Year ago +30

    The art is very nice for the plant tiles, I like the slight movement of the tiles up and down!

  • Max Anderson's Mind
    Max Anderson's Mind Year ago +5

    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!

  • ZuzeloApps
    ZuzeloApps Year ago +4

    Whenever I see such a cool game made in this game jam, it makes me even sadder that I missed it :(
    Great work!

  • Golzaye
    Golzaye Year ago +144

    Did ya win, son?
    No seriously, did you win the hackathon - the game is amazing

    • [あにめ
      [あにめ Year ago

      @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!

    • Ymir
      Ymir Year ago +1

      @Wintermute Digital bruh thats so sick! congrats!!!!

    • Dullahan
      Dullahan Year ago


    • Pedro Otávio Cavalcante
      Pedro Otávio Cavalcante Year ago +1

      Congrats, man! Amazing work

    • b0b1goat2
      b0b1goat2 Year ago +14

      @Wintermute Digital that's awesome! Congrats!

  • Ryan Anderson
    Ryan Anderson Year ago +2

    Impossible that anyone is really this talented. Amazing job, going to go play now!

  • KallMeQul
    KallMeQul Year ago +3

    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!

    • KallMeQul
      KallMeQul Year ago

      @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!

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      Sorry about that! I have all the dialogue snippets on my website to compensate for this bug at 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.

  • Vítek Prchal
    Vítek Prchal Year ago +13

    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.

    • Wintermute Digital
      Wintermute Digital  Year ago +3

      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 :)

  • Jpzarde
    Jpzarde Year ago

    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.

  • ZPanic0
    ZPanic0 Year ago +1

    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?

  • reilem
    reilem Year ago +3

    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)

    • Wintermute Digital
      Wintermute Digital  Year ago

      Ooo that is a lot of really cool functions I didn't know about! Thank you so much :)

  • Scott Hillberry
    Scott Hillberry Year ago +1

    What a simple and well executed idea. Love the result! Looking forward to seeing more from your channel in the future.

  • Fletcher Cutting
    Fletcher Cutting Year ago

    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.

  • Kiddakong
    Kiddakong Year ago +1

    The pixel art is incredible! I like all the gradients and calm colours that gave the game a great atmospheric vibe B)

  • devMoth
    devMoth Year ago +1

    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)
    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.
    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)
    foreach(Plant p in PlantsToRemove)

  • Ethan Hooper
    Ethan Hooper Year ago +1

    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!

  • Zach M
    Zach M Year ago +2

    I love the idea of this, you should keep working on it and make a fully fledged game.

    • GazzaGreen69
      GazzaGreen69 Year ago

      @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

    • Wintermute Digital
      Wintermute Digital  Year ago

      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!!

  • Zerofever
    Zerofever Year ago +1

    Super relaxing to play. Im thinking of implementing text interface in my game because of this. I think more games should have this.

  • Geno
    Geno Year ago

    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!

  • Kristina Waldt
    Kristina Waldt Year ago +1

    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.

  • Jacob Ewert
    Jacob Ewert Year ago

    Love the game! SUPER relaxing :) Awesome job!!

  • Максим Пчелинцев

    It's one of the most unique projects on this year gmtk jam. Awesome!

  • victor noagbodji
    victor noagbodji Year ago

    🙏 🙏 😊
    thank you for making this video. this is actually very inspiring!!

  • nyx
    nyx Year ago

    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.

  • XyloBetaGames
    XyloBetaGames Year ago +1

    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 :)

  • Kaustubh Kulkarni

    The video was damn fun, Keep up the good work :)

  • Rugbug Redfern
    Rugbug Redfern Year ago +1

    Subbed! Awesome game, looks amazing too. Love the command line idea.

  • JustANerdyNorwegian
    JustANerdyNorwegian Year ago +1

    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!

    • JustANerdyNorwegian
      JustANerdyNorwegian Year ago

      Wintermute Digital Thanks for reply! Looking forwards to future project! (:

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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 :)

  • Anders Steen
    Anders Steen Year ago

    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.

    • Anders Steen
      Anders Steen Year ago

      @Wintermute Digital happy to help, keep learning!

    • Wintermute Digital
      Wintermute Digital  Year ago

      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 :)

  • Qxoi90
    Qxoi90 11 months ago

    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?

  • AdVega
    AdVega Year ago

    i love this so much, the vibe is amazing. carry on :')

  • thera
    thera Year ago +1

    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 :)

    • Wintermute Digital
      Wintermute Digital  Year ago

      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.

  • Ragorn564
    Ragorn564 Year ago

    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

    • Wintermute Digital
      Wintermute Digital  Year ago

      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:
      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.

  • Thom Tuinenburg
    Thom Tuinenburg Year ago

    This is awesome! Great Job!
    Would be even better if it would be a wallpaper in wallpaper engine

  • Feitan
    Feitan Year ago +1

    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

    • Feitan
      Feitan Year ago +1

      @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

    • Wintermute Digital
      Wintermute Digital  Year ago

      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.

    • Mathue
      Mathue Year ago

      @Wintermute Digital May I ask, why such distain for Unity's animation system? (mecanim)

    • Wintermute Digital
      Wintermute Digital  Year ago

      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 :)

  • Candle__
    Candle__ Year ago

    Great job man that game looks good ✨ you should make it mobile game that would be so great

  • Karthik Nallan
    Karthik Nallan Year ago

    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!

    • Wintermute Digital
      Wintermute Digital  Year ago

      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.

  • Chaotic Revenge
    Chaotic Revenge Year ago

    The best part of these gamejams is watching all the devlogs that come out if it

  • Dippy Dorp
    Dippy Dorp Year ago +8

    I would absolutely love to see this as a full game

    • [あにめ
      [あにめ Year ago

      @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

    • ジンロウJinrou
      ジンロウJinrou Year ago

      @Wintermute Digital Yeah, it is a fresh idea as of now. Looking forward to your project.

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      ​@ジンロウJinrou That is an incredible idea wow! Definitely something I'll think about more.

    • ジンロウJinrou
      ジンロウJinrou Year ago +1

      @Wintermute Digital maybe turn it into a rogue-lite planting sim? Would be awesome to merge those two genres.

    • Zach M
      Zach M Year ago

      @Wintermute Digital Make the farming sim a smaller part of a larger survival sim. maybe on mars or something.

  • aleck
    aleck Year ago

    Really cool project! Good job! :)

  • Aron Marriott-Smith

    You did so much work in 48 hours!

  • Pancakeo9
    Pancakeo9 Year ago

    Nice work, love the idea!

  • FuzzyChurro
    FuzzyChurro Year ago +2

    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.

    • Jimmie Fan48
      Jimmie Fan48 Year ago

      @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!

    • Wintermute Digital
      Wintermute Digital  Year ago

      @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!

    • Exquisite Dog
      Exquisite Dog Year ago +1

      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) ?

    • Wintermute Digital
      Wintermute Digital  Year ago

      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 :)

  • cupofdirtfordinner
    cupofdirtfordinner Year ago +1

    his voice is very calming, so glad i found this

  • TheDragonCat99
    TheDragonCat99 Year ago +1

    “Let yourself become immersed”
    I see what you did there

  • KBC Pokemon
    KBC Pokemon Year ago +2

    This is one comfy looking game. 10/10 :)

  • Robert Lowther
    Robert Lowther Year ago

    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.

    • Wintermute Digital
      Wintermute Digital  Year ago

      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

  • Liquid. PL
    Liquid. PL Year ago +1

    This game looks like a beginning of one of those supercomplex games that reviewers like Sseth reviews.

  • level1
    level1 Year ago

    Not gonna lie, the art, look and feel is really nice! :)

  • Katsuo
    Katsuo Year ago

    Esta muy bueno, inspira bastante!
    Cheers from argentina :D

  • Skeffles
    Skeffles Year ago

    Looks like a very relaxing aesthetic. Kind of the opposite of what I made.

  • Aqua
    Aqua Year ago

    I need a complete version of this.

  • Triximix
    Triximix Year ago

    I like the vibe. Great job !

  • Falxie_
    Falxie_ Year ago

    I like that you animated the drop shadow separately

  • Terrain
    Terrain Year ago

    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

  • LiveOVErdrive
    LiveOVErdrive Year ago +1

    This is the kind of content I like on TheXvid.

  • Alex Noman
    Alex Noman Year ago

    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!

  • K Ken
    K Ken 11 months ago

    I feel the game has potential but after playing it for a few minutes I felt like it lacks something I can't describe.

  • Cosmos Code
    Cosmos Code Year ago

    Dude your transitions are so cool and visually interesting, of course the whole video is really cool but hot daym those transitions!!!!

  • Jermy Hunter
    Jermy Hunter Year ago

    the game style and the coding style throughout the video give me some ideas
    i like this art and peace, thanks

  • Terra Gming
    Terra Gming Year ago

    Look rly nice i love that they have commmand qn the sprite are ammazing

  • ZAX
    ZAX Year ago

    Realy love the concept man I spent a whole hour playing around with it

  • Kyle Hawyes
    Kyle Hawyes Year ago +3

    Love this type of content. I'm wanting to get into what your doing. How did you learn to code and get into this?

    • Wintermute Digital
      Wintermute Digital  Year ago

      @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. (You might have watched this already but if not, take a look!)

    • Kyle Hawyes
      Kyle Hawyes Year ago

      Ok thanks. Yeah I’m currently doing Unity tutorials and their summer coding camping and been learning a lot. Will keep grinding

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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?

  • Niko L
    Niko L Year ago +1

    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.

    • ( ͡° ͜ʖ ͡°)
      ( ͡° ͜ʖ ͡°) Year ago +1

      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.

  • tylde
    tylde Year ago

    Hello, what VSC extensions do you recommend to work with unity?

  • Pedro Lontro
    Pedro Lontro Year ago

    You should share the source code if possible! Great work btw

    • Wintermute Digital
      Wintermute Digital  Year ago

      It's honestly a pile of trash spaghetti code that you really don't want to read :P

  • C J
    C J Year ago +3

    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

  • Norik Movsesyan
    Norik Movsesyan Year ago

    Great video! What program do you use for pixel art?

    • Wintermute Digital
      Wintermute Digital  Year ago

      Aseprite! It's the best. Also, check the description as I will put software used in there.

  • Martin H.
    Martin H. Year ago

    I really like your voice. Low, calming, sincere.

  • Will Terry
    Will Terry Year ago

    (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.

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      Thank you! That second idea is pretty cool, and I might use it :)

  • zamalek
    zamalek Year ago

    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).

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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!

  • gdjosef
    gdjosef Year ago +1

    this is really cool and I like it. though the editing feels a bit off. anyways, still a great video.

  • Janik Nissen
    Janik Nissen Year ago +1

    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!

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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!

  • Mathew Jenkins
    Mathew Jenkins Year ago

    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

    • Mathew Jenkins
      Mathew Jenkins Year ago

      @A Very Lost Pikachu wow thank you! I'll check it out now! 😊

    • A Very Lost Pikachu
      A Very Lost Pikachu Year ago

      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.

    • Mathew Jenkins
      Mathew Jenkins Year ago

      @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 😊

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      @Mathew Jenkins I'm also kinda terrible at coding, but if you're interested here's the spaghetti source for the console:
      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!

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      ​@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 :)

  • Nikolai Kovch
    Nikolai Kovch Year ago

    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

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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 :)

  • Verd ASMR
    Verd ASMR Year ago

    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 😟

  • Arcane Worlds
    Arcane Worlds 7 months ago

    Nice!!! We're adding a farming simulator element to our game too! Going to steal some ideas :P

  • Game2Playz
    Game2Playz Year ago

    I think a particle system would have been better for your rain implementation, instead of initializing so many raindrop gameobjects.

    • Wintermute Digital
      Wintermute Digital  Year ago

      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

  • Yashe
    Yashe Year ago +7

    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!

    • Liam
      Liam Year ago +1

      *YandereDev sweating*

    • Erk
      Erk Year ago +2

      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

    • Yashe
      Yashe Year ago +1

      @Wintermute Digital I am glad that I could help you :D Good luck with your further projects

    • Wintermute Digital
      Wintermute Digital  Year ago +6

      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!

  • Netanel M
    Netanel M Year ago

    Very cool! Curious how did you learn all that

    • Wintermute Digital
      Wintermute Digital  Year ago

      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

  • Cosmo Corner
    Cosmo Corner Year ago

    This turned out cool!

  • Yafet Befkadu
    Yafet Befkadu Year ago +146

    I totally enjoyed ur video but the transitions bothered my eyes it was too flashy sorry 😊 did give ur video a like tho

    • BnyKB
      BnyKB Year ago +4

      @Wintermute Digital I think they're cool but could be toned down a bit to be a bit less jarring

    • Wintermute Digital
      Wintermute Digital  Year ago +43

      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.

  • TheGrimriftstalker

    I feel like you, me and another artist I know could rule the whole god damned world... xD

  • tonogram
    tonogram Year ago

    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.

    • tonogram
      tonogram Year ago

      @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.

    • Wintermute Digital
      Wintermute Digital  Year ago

      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 :)

  • Klaus Baudelaire
    Klaus Baudelaire Year ago

    this gave me inspiration to try to make a similar game using c# console

    • Wintermute Digital
      Wintermute Digital  Year ago

      Good luck! I hope you update this with a link to your game sometime :)

  • Rob Lang
    Rob Lang Year ago

    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

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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!

    • Andreas Podgurski
      Andreas Podgurski Year ago +1

      Basically a text adventure. The Infocom and the Magnetic Scrolls parsers already used command chaining back in the 80ies.

  • Hi_Sky_
    Hi_Sky_ Year ago

    can you make a guide on how to make an isometric game like this?

  • Caesar Is Dreaming

    Really good job mannn !

  • r0y4l69
    r0y4l69 Year ago

    very interesting, good job

  • Rethozion
    Rethozion Year ago

    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.

    • Wintermute Digital
      Wintermute Digital  Year ago

      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!

  • Reznolf
    Reznolf Year ago

    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 !

    • Reznolf
      Reznolf Year ago

      @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 )

    • Wintermute Digital
      Wintermute Digital  Year ago +1

      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 :/

  • RacmusDK
    RacmusDK Year ago

    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