19353 words on this page!
For the first part of the Final Major Project, we were tasked to create a mood board of all our ideas that branched off of the words "garden" and "time". Here are my main thoughts about them. I felt like this was quite difficult since I didn't really know what else to put, especially for time, since I couldn't think of any other ways it would be represented. Although this could be good for game ideas, this has probably been better for game mechanics than the actual game idea for me.
The next step for me is to get all of these initial ideas put onto a PowerPoint and create a Pecha Kucha presentation. This will have a voiceover of mine talking for 30 seconds on each slide that I have, which means that there will be little to no words, so the audience is more focused on what I have to say, rather than what is shown. Each slide should just have a picture or two to get a rough understanding of what I'm talking about, and the rest is up to what I say. We've been told to make this Pecha Kucha with 6 slides, running for 30 seconds each for a total of 3 minutes for a presentation. I will need to make sure I not only get my ideas across which are from my thoughts about these words, but also my ideas for a game that comes from them. I'll probably try to just have one or two images on each slide, with either no text, or a very small amount explaining what something is.
Mood board of initial thoughts from the prompt
Here is my Pecha Kucha for presenting my initial ideas for the "Garden of Time" prompt. For the slides, I searched for images on Pinterest and found some pictures that I thought matched what I was thinking of the best. I mostly based this off of the mood board, and then just developed those ideas a bit further. Once I got all the images I wanted for each section, I made each slide look a little nicer, and then added some notes that I could use to remind myself when I talk over each slide. Alongside getting pictures and noting down my ideas, I also kept links on a page that contained the source of the images that I used, Harvard referenced.
Once I had finished designing every slide, I installed PowerPoint at home and recorded myself talking as if I was actually presenting. I did originally have a recording of myself talking, however, it didn't sound too great, and the video I had as the background for the title slide needed to complete one loop before it would start the audio. Therefore, I removed the audio, and also later removed the background since it was messing everything up.
In the end, I had to resort to recording myself with the Audio recording button, which brings up a very simple UI that you can start recording, stop, and play the audio back. Once I had talked through each slide, I made sure it worked properly and then exported it, and the result is just below.
I did try sharing a link to the presentation, however, it doesn't let other people access it, so instead I got a copy of each slide and put it in this image carousel below. Because you also can't hear what I said, I've just pasted in my notes for each slide. A couple of them don't seem to show the full thing for some reason, but you get the idea of what I was trying to say.
It's not the PowerPoint file, but this video is the closest thing you'll get to seeing what the presentation was. I have just screen recorded the presentation that includes me speaking through it.
For the next stage in the FMP, it was time to start getting ideas together and building a base idea for the game that we were going to make. One of the first things I started was making a short form for some people in the class to fill out. Obviously, it was expected that some people would answer some questions untruthfully (e.g. the age one), but I think this gives us a better idea for what people would want to be produced in a game. Not only that, but it helps give us a better insight as to what we should make the game look and play like. Even though at this point we had a pretty decent game idea, it can still be helpful if we are unsure about something.
To start off the form, I just made this very simple age question. This is mostly going to be useful so we know what the majority of our target audience is going to be. Furthermore, this will probably mean that we'll see a similar pattern throughout the rest of the responses, since most people at a certain age are playing similar sorts of games.
Age question - not useful because people didn't answer properly, and the questionaire was sent to few people, mostly of one age group
The next question was very short, but simple and straight to the point. I know usually people specify what you play on in more depth, for example Playstation, Xbox, Switch etc, but I don't think this is a great source of data, purely because they are all console games, and can be made in very similar ways. Therefore, the main divide between PC, console and mobile seemed to be more fitting. Furthermore, I knew I wasn't going to have many people voting on the form, so getting more data in more condensed fields seemed better for us.
Primary platform question - related to age question because most people that age play PC
The next question was based on the art style of the game, trying to find out what people like most in a game. Although for this project we only have a very short period of time to make a game, so basing it on realism is going to be impossible unless it was just some graphics, it is still good data because we can infer from this the kind of textures that we can use for the game. We could make some quick models and just slap a texture on them. We could make some simple, low poly models and just give them a colour or two, or we could do some low poly models, but with a bit of pixelated design. There are many ways we can make this game look decent, so that's why getting some of this information is important. Clearly, nobody liked the geometric art, so I think we should stay away from something like that.
Game style question - decent question, however, realism isn't a realistic goal for this short-time project
For the next question, I needed to find out what sort of gameplay people would usually prefer. By far, it seems that role playing is a favourite, and this can be somewhat linked to simulation, so our main game idea so far would do decently is this regard. Nobody seems to like third person shooters or real time strategy games, but this may have also been because of the fact that they didn't know what the acronyms stood for. First person shooters is always going to be a favourite theme in gaming, however, is hasn't done quite as well as I thought, so our game idea still stands strong as of yet.
Game type question - useful, especially since our idea was basically a role-playing-game
This question was a bit of a random one, but I wanted to see what people thought of playing games where you do pretty much the same thing over and over again, just trying to get a lot of money and buy everything in a game. It was quite a close poll, but as we can see, it appears that more people prefer it to not playing a game like that, so we can go with it. Now, we could've done a game that wasn't to do with grinding if we instead made a story game. However, it could also be said that every game has the potential to be grinded, it just depends on who plays it.
Grinding game question - not useful due to lack of responses
At this question, it probably wouldn't affect the type of game that we'd be making that much, but more on what we would focus on adding into the game. Since the theme of time appears to be more popular than the garden theme, we'll have to try and implement time more than garden, which is going to be difficult since we are making a game about gardening. However, our way of adding the time theme into the game was by adding custom plants that are from certain periods. Maybe instead of adding lots of scenery, we could focus on adding more of these plants and giving them better meaning. Furthermore, we could maybe make different time periods that you work in, so maybe you start in the Stone Age and once you get to a certain point, you move to a later year in time. Now, this is going to need some deep thinking about, especially considering the amount of time that we have to make it, however, that's why we have this planning stage. If we can get a base game idea for what we want it to look like and played like, then later on we can implement more of the time features.
Theme importance question - again, not enough data
This next question could be useful for knowing if we want to implement what I just talked about above, or maybe something slightly different that included more in-depth time travel. Again, it would be something that we would only add if we had enough time, but it's good to know that players would probably like some time travelling mechanics.
Time travelling question - needs to be more specific on gameplay, and lack of responses makes it difficult
The final question on our form was asking people's opinion on isometric games. I'm not surprised that a lot of people didn't know what it is by the name, however, once shown an example, I would assume that most people would like them. I think this is what kind of game we are going to make, and I think it also opens up a lot of possibilities when creating it.
I'm hoping that when creating an isometric game, we should be able to get it looking good and everything working properly. For now, my idea behind it is that everything that you cannot walk through, so buildings and other obstructions, should be 3D. Then everything else can be 2D sprite images. Included into the sprite images will probably be the player, decorative details, and possibly the plants, but we'll have to see what we think when we start production. I also think that having plants as 2D might be a bit quicker for production than 3D, since the whole modelling process would be quite long, and then you also need to go and texture, whereas you could just draw up some plants in Photoshop which is not only quicker to do, but also gives you a lot more possiblities when it comes to designing, and isn't as punishing when you make something you don't like. For example, if I make a leaf I don't like because the middle part of it looks strange, you may have to redo the whole leaf in 3D or add a lot of new segments to make it look good. However, when drawing something like that, you can just remove it and draw it back in however you like.
Isometric game question - could've done with an explaination
After finishing the Google Form, I went on to create a Trello board that we can use to remember any ideas we have for the game, give us more in-depth things to research on the game about, as well as giving us specific things to include and talk about for the pitch presentation that we have to make, submit and present next. A link to the board is below:
Pumpkin Panic
This game involves mostly farming and fishing. However, it is also partly a horror game since monsters will chase you at certain points. You have quite a decent sized map to explore and do multiple things within. The other really interesting thing about this game is the art style. The isometric style of the game looks amazing and the developers certainly did a great job making it look the way it does. Although it's mostly a 2D-based game since your character is 2D, the world design makes you feel like it's 3D.
Aside from the game being incredibly cool, I have to take inspiration from some parts of the game, when we go to create ours. In this game, the world is one of the most distinctive features, and that's something I would like to try and replicate. We probably won't have something quite as large, however, this is still a great way to make and play a game. Most of the world looks like it's made of thin paper, which is something I might try to avoid and have the world be more 3D. What I'm thinking is that everything you cannot walk through (buildings, specific objects, etc.) we will have as 3D. Everything else will be 2D. I might try to take some inspiration also from their farming mechanics, however, I don't think it's quite like how I imagine ours being. The last thing I like about this game is the lighting. I think it's made perfectly, and although we won't have it the same since we're not making a horror game, I believe that I can try to make everything look smooth like this game.
A few pictures from Pumpkin Panic, a great looking game that we want to try and replicate the artstyle of.
Stardew Valley
Stardew Valley is another farming-based game, but this time, it's one with a lot more features. Not only can you farm so many types of plants, which each require various needs, you also have quite a lot of customizability within the game. You can customise your character, your house, and other things, which is something that I could try to implement a bit of.
Furthermore, the graphics for the game are stunning, especially considering it's all pixel art. The pixel art style is what I may attempt to have within our game. The only problem with this is the fact that we want it to be an isometric game. Therefore, we'd have to make pixel art on 3D models, which would not only take a long, long time, but also could be a bit difficult. Nonetheless, it's something to consider, and there are lots of things that we can get from the game and use as inspiration for the art, even if it's not going to be pixel art. That is because this looks quite realistic, so you could use similar looking textures, but in higher detail.
Now, it's probably not going to be possible to implement, and considering this is only meant to be a demo with little gameplay, I probably won't add multiplayer. However, it could be cool since everyone could have different jobs, but I might just have to go with making an AI to do work instead of an actual player. This will also probably be easier than implementing a working multiplayer.
A few pictures from Stardew Valley, a largely popular farming game with a massive amount of gameplay and stunning visuals.
Slime Rancher
While the Slime Rancher game isn't primarily focused on gardening and growing plants, it is the aspect of the game that we'll be looking at in quite a bit of detail.
Not only are the plants well designed, looking very interesting, but they also have multiple upgradable aspects that we would want to include in our game, that we could take inspiration from. For starters, there is upgradable soil which looks quite cool. But, there is also sprinklers and a scarecrow that you can buy, which all make your plant production greater.
One of the greatest parts of this plant feature though is the fact that the changes are visual. For example, before buying the sprinklers, there were no particles, but after buying them, you have water droplets in the area, so you will always know you've bought them. Not only does it look cool, but it gives a bit more reason to buy upgrades in games, since you'll want to know what each upgrade looks like, encouraging the player to continue playing your game.
Lastly, I believe the simple 3D models and textures are a great asset within the game, and although they are relatively basic, you can clearly tell what things are meant to be, and it isn't too overcomplicated.
[3]
A few pictures from Slime Rancher, a nice low-poly 3D game with some interesing mechanics, specifically the plant patches.
For the game, I thought it made sense to have some sort of plot. Not only would this give us more to go off of when making the game, but it would also enchance the overall player's experience, since I think it would be better for players to actually be doing everything for a reason, compared to those mobile games that just simulate a store business or something similar with no actual story behind it, basically playing a boring tycoon game that somehow is addicting. I believe putting a story behind something like this makes it even more enjoyable and could keep players playing for longer due to the fact that you are sort of doing everything for a reason.
Going back to the overall improvement in player's experience, because of the fact that we'll have a story, this not only guides us down the character creation and what details we want to include, but it could also affect the setting of the game, as well as the art style theme and colour palette.
Below are some of my ideas for the story of the game. Me and Lucas will discuss what we believe is best for the game, especially since we'd have to make quite a few extra assets for each story, and I'd have to code a bit more for the game since we'd want a mini intro for the story. The first one will certainly be easier to do, and works more within the original idea I think he had, however, we'll have to talk about it.
You are a person born in ancient times that needs to earn a living after being thrown out by your parents. A friend gives you their back garden with a small plant patch to grow plants, and a sketchy guy’s contact to buy some seeds. You now need to earn a living planting seeds and selling plants.
(could start off with some regular plants e.g. sunflowers etc. and then have the “sketchy” guy offer you some seeds for something – moving somewhere to work, and you can leave once you earn enough?
OR
You are a time traveller that travelled all the way back to 100BC (or something like that) but have had your machine held hostage by some intrigued, hostile humans. To get access, you must do some farming of plants, earn enough money to satisfy them, and travel back home. However, you realise that you cannot go back all at once, and so you must progressively travel through the years, working for lots of different humans until you eventually get home.
(could be that instead you are tasked to get something and you need money for it so each time you sell plants to get enough money – once you get back home, everything could be weird and changed since you altered the timeline)
In addition to completing our game pitch presentations, we must submit our Project Proposal Pro Forma and Action Plan for the FMP.
These are my completed copies of them, and I think I put a good amount of detail into them. The Pro Forma was filled with what I want to get complete out of the whole project, as well as the concept idea that we'd be making. Obviously, some issues will come with any project, so I listed ones that I assumed would come up, which could make it better later on for me since I'll reflect on them and try to prevent them becoming a big deal. The list of sources used is going to be put at the bottom of each blog page for the FMP, listed under Bibliography.
The timetable is mostly a rough plan of what I'm going to be doing each week, since until I begin making stuff, I won't know for sure what I'm going to be doing exactly. Of course, I will make sure I explain everything thoroughly on my blog, however, I cannot give exact activities, since I may finish something earlier than expected, and be able to add some extra content that is not the main goal we've given ourselves. Furthermore, I cannot fully know what tools we are going to be using. I will probably not need to use Photoshop as much as Lucas since he's doing most of the designs, but I may need to do some. 3DS Max is something I hope I won't have to spend too much time in since each model is going to be as basic as possible, but it's still needed.
My response to the brief and how I'm going to tackle it. This includes what I'm going to do, as well as how.
My FMP timeline, which includes an activity or multiple that I want to get done for the week. This also includes what I'm probably using for this.
For the next deadline, along with the forms, we had to submit a presentation that we also presented to the class. This was made to show off our idea for the FMP. Within this, we had to list what the game would be based on, as well as what we would be doing for the FMP. Although you could just do some 2D design or some models that could be used within the game, we decided to make a demo for the game. The main reason I'm confident that we'll have enough time is because I'm in a group with Lucas, and this will allow us to get more done in the time since he can create all of the 2D assets, and I can put them together inside of Unity, creating a game. I will also be doing the UI design, attempting to get it complete at the start of production, since he will need to make a few assets before I can begin doing anything else with the game. The other thing we need to consider is the isometric aspect, meaning that one or both of us are probably going to have to do some 3D modelling and texturing, unless we decide to just go with the game style from Pumpkin Panic.
I think overall, our pitch presentation went quite well. Although I was slightly annoyed that the little character I was animating couldn't be put on every slide. This was because I opened the After Effects file at home on a later version of software, and when I tried to open it again at college, it couldn't open. This was really annoying because it meant that I had to instead do animations on PowerPoint, which didn't look bad, but it wasn't ideal. The main reason I wanted to include the little guy anyway was mostly to show off what animations would be looking like in the game.
We have used Google Images for the pictures used on our PowerPoint [4]
I have the same issue as the Pecha Kucha in that the way I originally tried to add the PowerPoint. In the end, I've done the same thing, by downloading an image of each slide and attaching the notes that we added to the bottom. Obviously, this looks a bit strange on some slides, especially considering a few of them are based on the same thing, but that's because there were animations, and we'd be talking through them. It's a bit annoying I couldn't get it working properly, but hopefully I'll find a way next time.
This is similar to the way that I attached the Pecha Kucha, but this time we have a video of the Project Proposal presentation. This doesn't have us talking in it, but it does allow you to see the animations I made for this presentation.
Lucas went off and made the first piece of concept design for the game, being the logo design. This is something that didn't require much time and effort put into it, and I think it's quite good for what we need it for. At the start of the game, I can make a screen briefly flash up displaying this, but other than that, it probably won't really be used much. There were two photos he used for inspiration, so I have attached links to them on my bibliography. [5] + [6]
Our game's logo that Lucas designed early on. It depicts what the game is about very well.
Things I want to include in the pre-production folder:
Some concept art for the game - characters, plants, map design etc.
More research into similar games.
Research what the plants could look like.
Research art style along with map design.
Research code and sprite image changes for character movement.
Reference images, along with updating the bibliography with Harvard referencing.
A greybox prototype that gives a rough idea of what the game is going to play like.
The AOs for what we're being marked on, as well as what we need to do to get a pass, merit or distinction in each section.
For this project, we made a Trello board to list all of the ideas and things that we'd be making to keep track of everything throughout production, and so we can make it all look a bit more organised. With this, me and Lucas can easily type up everything that we make and check boxes for things once we have made them. We can also attach files and write up descriptions for everything so that we can each take each other's work and write about it on our blogs. This is also a good way to communicate with each other if for some reason we couldn't talk in person, since you can write comments on cards that people make, and then you could write up feedback to change things.
Nearing the end of the pre-production, this is what the Trello board is looking like. I've added a lot to the Prototype Stuff list, and you can also see what I was unable to complete a bit easier than using the list of things on my blog page. On each section, I included the videos and files that I made so Lucas can see each part that I've made, and talk about it on his blog page.
What our Trello board looked like during the pre-production phase.
The dionyvine plant that Lucas made. Combined the Greek pillar for the Greek God Dionysus, as well as grapevine.
The plants in the game are going to be based on various periods since that is the time aspect of the game. During production for the pitch presentation, Lucas went and made this concept art for a plant, which we are going to call Dionyvine. The reasoning behind this name and design is due to the fact that he went with ancient Greek as the time period, and thought a grape-vine plant would be suitable. Because the plant was going to be some grapes that would grow from off of a vine, he called it Dionyvine. However, he did use ChatGPT for this naming, and although it may seem a bit cheaty, we can easily use this as an example for naming all of the other plants. [7] When using the AI chatbot to get a name, he simply asked it for some names that would fit an ancient Greek-styled plant that has grapes growing from a vine. Since there is a Greek god, Dionysus, this gave him a brilliant name that overshadowed the other names suggested to him.
For the next plant design, Lucas was going to begin some Egypt art design, and for this, he decided the Lotus Egyptian would be a great plant to base it on. For this, he continued to go down the route of having some kind of structure to make it more resemblant to specific periods, and pyramids were certainly the right choice for Egypt. Initially, he designed the lotus which looked quite good, and then after he began designing the pyramid. Although just drawing it freehand is easy enough, I thought it would be cool to use Photoshop's perspective tool on flat 2D sides to make the pyramid. To give Lucas a rough idea of what I meant, I quickly popped into Photoshop and made a basic design as an example.
As you can see, I started with two pyramid shapes that I designed uniquely so you could tell which face is which. After that, I selected one of the layers and used the perspective tool to alter the look of one of the triangles, giving it a 3D look. After trying a couple of different designs, I found that trying to keep the same perspective box size was what gave the best illusion. After I finished one side, I just selected the other layer and altered that one to make the other side of the pyramid. The finished example shown below looks quite good, and it is probably easier to design than just drawing it in 3D since you can't always get a good idea for how things should look, but this tool makes it a lot easier. I believe that Lucas is now just drawing it straight on, but I suppose for a simple design like this, it isn't the end of the world.
At this point, I also thought that each period could have its 2-3 plants, and then the last one would be this more special variant that has some sort of structure resembling the time even more.
The 2D pyramid example design.
Using the perspective tool on the 2D pyramids.
The end result of putting the two 2D triangles together using Photoshop's perspective tool.
The second plant that he designed was this pyramid with the egyptian lotus growing out of it. He called this the Giza Lotus, and I think it represents Ancient Egypt quite well. The pyramid alone is quite good in that regard, but the plants are also a big aspect that I think look quite cool. In the end, he didn't do the pyramid in the way I was saying, but it still looks quite good, and you can tell what it's meant to be. I think the main strange thing about it is the different quality in art style, since the pyramid has very few details and looks rushed, compared to the lotus plants that are quite detailed, with a gradient colour and some little details. Although it doesn't look bad, I think he should've just done both with quite a rough design, since for now we should only be doing concept art, and do a better looking design later on, since this doesn't need to look perfect, it just needs to give us and other people a good representation for what things are going to look like in the final product.
Lucas' second designed plant for the game. He didn't use my perspective tool method, but it still looks pretty good.
Character Design
Lucas has now made the character you'll be playing as. Since it's a farming game, he gave it some basic farmer's clothing, and it looks really good. I like how he made the hat look different from the various angles, and the apron looks cool, especially from the back. It's all quite simple, but that's the art style that we were going for with the game, so it'll complement the rest of the graphics greatly. I think the simplistic style of hand also looks quite nice, and avoids any strange-looking hands, especially as they're quite difficult to draw, and this just makes it look a bit more neutral. Lastly, I think the side views also look very nice, and he's gotten the proportions of the character looking great, aside from the left shoulder looking more blocky, but it's a small thing that you can hardly notice. I also think that the small amount of hair at the back of his head looks quite funny, but is a nice, subtle addition.
There isn't that much at all that looks bad about the character, but if I was to be really picky, I would say that the clothing doesn't look exactly the same from each angle, in that the back picture makes it look like he's got a relatively large behind since it pops out a bit. Also, the side view looks a little weird where the shirt and bottoms intersect, but these are only small things, and I think overall it looks great.
After making the static designs, Lucas then went on to draw the walking frames, and I have mixed feelings. I really like the side views. Not only do they look like he is walking, but I think it should look very fluent once it's added to the game. However, I do have some different feelings about the front and backward movement. I can't tell if he is meant to be doing a river dance, or if he's tripping over himself, but it just looks a little goofy. I understand that making a character look like it's walking from these perspectives is hard, but I probably would've just made a different perspective of the shoe and added some creases in the clothing. Originally, he also had the arms stationary, which I think would've removed the illusion of walking completely, but now that he added it for the side view, it looks much better. I know that he would have to redo the arms a bit for the front and back view, but I just don't think it's going to resemble walking forward and backward all that well; however, maybe it'll just be funny and turn out to be an interesting part of the game.
Overall, though, this is looking really promising, and I think the designs he's made thus far are going to start to show us what the game is probably going to look like come the end. If he thinks he wants to change the designs once I do start putting everything together, then he also could, so that may be something that happens when we see how it looks animated properly.
Static standing player poses.
Walking right.
Walking left.
Walking forward.
Walking backward.
Pirate Plant
The next design Lucas made was a new plant type that was from pirate times. He made a little ship that was meant to resemble a sunken ship, and some seaweed that was growing out of it. I think this is a cool design that he made, and the ship actually gives off a look that makes it look like it's made of wood. I like how he drew all of the different parts of the boat, and it very clearly resembles that of a pirate ship. I also think that the way the seaweed is growing out of the ship looks cool, with the holes and broken bits. I think it would've been cool to have an even bigger hole, maybe revealing something inside, but nonetheless, it looks neat. The seaweed also looks very seaweed-like, which is good, since that is what he was going for.
The main problem I'm going to have with this is not only the fact that he drew it on sand and in water, but also how we are going to have to make some new patch or something else that can hold this. I think it shouldn't be that difficult, but at least for the demo, I would've made it so we didn't have a bunch of various things that would be needed to grow the plants, but I'm sure we can make it work. I think what I'd recommend he does is make it with just the ship and seaweed, the same way he made everything else, because I can model a small tank of water with sand in the bottom, and just move the ship in the ground, making it look submerged in the sand. Other than that, though, this is quite a neat little design, and I would've thought this should be quite easy to make with the growing stages since a little bit just needs to be added on at a time.
The third designed plant that Lucas made. This didn't make it into the final game since we'd ideally need some kind of water patch, but it's a cool idea.
For being able to plant certain plants, we've decided that, if we had the time to complete a game, they would have certain conditions that would need to be met in order to actually have them grow. For example, the Egyptian Lotus plant could require a sandy substrate, warm temperature, and high humidity. This could be achieved by eventually getting enough money to buy a greenhouse or something that you can place plants in and adjust conditions so plants can grow. We could make it so whatever you buy already supports something, or we could make it so that you can change conditions, but doing so with a plant in could kill them, losing some profit. This could branch out to become a game mechanic that requires you to keep track of the conditions of these plants, making sure temperatures don't rise or drop too much naturally, adding more things that you need to do. Furthermore, this could probably be known as our main ethical consideration, since it's more realistic having plants that are grown by having proper conditions. I think for this reason alone, we should maybe try to implement this over more gameplay of other things, however, this will greatly reduce the amount of content that is included within the game, unless I find an easy-ish way to implement new plants and conditions.
Adding onto this, I think it's a good idea if I can implement various changes to the design of plant patches as you upgrade and do specific things to them. For example, I would like to include a watering mechanic that maybe speeds up the growing process, however, if you add too much, then it could slow it down for a bit of time because they have been over-watered. This could affect the colour of the soil, and could be a better way to implement the game mechanic, rather than just having a basic and boring bar that shows you how much you are watering it. The other patch design changes could be reminiscent of the game Slime Rancher, where you can apply upgrades, and it will change the look of it. This could open up a lot of possibilities, and as long as I make them compatible with the patch design, I think it would look great.
What the basic stand would look like. A few spaces and doesn't look like anything special.
One of the first things we have to make for the game is going to be a plant stand to place plants on. This should start off quite basic looking, and later you should be able to upgrade it to have more places to put plants and have better-looking stands that could either be completely cosmetic purposes, or have additional effects like attracting more customers, but this would definitely be too difficult to code in the short time we have. I believe for the demo that we are making, I'd like to have 2 or more, but I think we should prioritise having one that works and make another if we have time. The best thing that we can do with this as a part of the map is to make it so the player can purchase more stands. This means that for now, adding multiple stands isn't necessary, and we can focus more on other stuff. [8] + [9]
What an upgraded stand could look like. Maybe a few more spots for plants, as well as looking better, which could attract more customers.
Shop
For the actual shop design, I found that the game Animal Crossing has quite nice-looking shop areas. I think the left image could be a great example for what it starts out like, and then after a bit of working and getting upgrades, the right image is what the shop has the potential to look like, with a lot more plants on display in a more developed area. I think with how the story goes, we'll just have it start at something similar to the left image, and as you progress onward through the game, you can slightly change some things, but nothing too much. [10] + [11]
Going a bit deeper into what I think it's going to look like, I believe the area should be outside since you don't really have any area/land to have a mini shop at this point. However, we'll either just have some stands and shelves in a small area with plants on, or maybe have a pop-up awning that has the stuff underneath, just to make it a bit more shop-looking. The main problem with having something with a roof is the difficulty with being able to see when under the top.
There are two fixes to things like this. I think it's either to have the roof fade out while you're inside, allowing you to see in, or just changing the scene as a whole, giving you the interior to walk around separately. Although the second is probably cooler, there are two main issues. The first is being able to actually do this. I attempted something like this in the game jam that we participated in, but it didn't seem the easiest, and to track data such as whatever the player has in their inventory, this could become an issue. Furthermore, this wouldn't really work for the awning since not only are the sides open - yes I know you can have them with sides - but the sizing would look ridiculous since you would usually make interiors look massive in text
A basic idea for how the shop is laid out if it was outside.
How the shop could look like if it was in a building or more upgraded.
An idea for what the shop could be under.
[17] & [18]
Plant Patches
For the plant patches, there are a few designs that I've found to be a good idea that I could use. For starters, the garden patch from Grounded is quite detailed, which I really like. Furthermore, I could use this as a base design and make something that looks similar, but just as cool. This also gives off an idea of it being quite cheaply made, but good enough for the job, which is kind of what our game is going to be for. I can also see this being easily customisable, and upgrades could change the look of it or add more to it. At the moment, I have a lot of ideas for this, and I think it would be something that I would very much like to try and recreate in my style. This is also because I don't think I am going to be able to make something of this detail, since at the moment, I don't have the skills to model something this well, and I also don't have the textures for this, since I would've thought these are custom textures that were made specifically for this. However, I can get something that looks like what it's meant to be, and that's good enough for me.
On the other hand, with have this more simplistic design that you could expect to see in the real world. This is quite simple, being made up of some bricks and some wooden stumps in the corners, filled with soil. Although it's simple, it's more like what I was imagining when I was making a plant patch. This is because it's quite reminiscent of the patch I made for the prototype. The main difference is that it has a bit more detail, rather than just a square with some texture. Don't get me wrong, that doesn't look too bad, but I think I can model something a bit better, and I will probably take a lot of inspiration from this. Luckily, it shouldn't be that hard to model, so I'll focus on putting a bit more detail into the design when it comes to production. I think it would also be cool to have some variation in soil height and stuff, so I'll try to do something like that, but I'm not sure how it'll turn out. Additionally, I was thinking that plant patches would only store one plant at a time, like the Grounded one. However, I could make a patch like this one that has multiple places to plant. I think I might do a mix of both, especially since some of the plants we add would be alright to have in a multiple patch area, but others (like the pirate ship seaweed) might be better off going in a one-plant-only kind of patch. I'm still unsure how we want that to look, but I'm sure we'll figure it out.
When making games, I think it's very important that you look around at other games, successful ones especially, and list what they do well. That could be just things I like about the game, things other people have said are nice, and just things that the creators have done that have set the game apart from other competitors. Not only is this important for knowing what you should focus on in a game, but this also could give you ideas or help you know what to do for your own game. For example, a game such as Stardew Valley is a perfect game to research for us, since it's also a farming game. Mechanics in that are something we could take as inspiration to better our game, and possibly even improve upon them even more.
The main problem with this game research is that ideally, you need to play these games, and this is something that not only costs time but also money. Although one game isn't going to break the bank, doing this continuously for every project could be bad, but luckily, I try to get games whenever they are on sale, which is what I've done for Stardew. The base game price already isn't much anyway compared to larger games that commonly cost upwards of £40, but then I thought I should probably get Pumpkin Panic as well, which is free, but for other projects games could each cost the high prices. Of course, you also have the other issue of time restraints. Not only do we have very little time due to college, but I have other things in life that drastically decrease the amount of time I have. I do have time that I can put towards college work, but when that includes a lot of various tasks such as playing new games for research, creating a prototype, researching different parts of the game we are making, and writing all of this up, it really does take a long time - if done properly that is.
Stardew Valley
The first game I am researching a bit about will be Stardew Valley. Although I have never played this game before, the game not only has great gameplay but also a nice storyline to go with it: you're told you inherited your grandfather's farm, and with very little left you have to work your way up to build a large and successful farm area. With everyone around you left without hope, you are the last chance to make Stardew Valley great again.
Inside the game, many various mechanics make this game feel well done and fairly realistic. In the game, you are meant to build up the farm by adding plants, growing crops and raising animals slowly over time with the large amount of land you have. Over time, you'll improve five various skills that you gain from completing tasks. Skills start with farming, fishing and foraging, also including mining and combat. Lots of different recipes can be unlocked, as well as areas around the large Stardew Valley map.
As well as gameplay, one of the things that makes Stardew stand out, especially in this type of game, is the amount of various unique characters that can be found upon when exploring. They are made to seem like real people, with birthdays, daily tasks, and even problems that over time of gathering trust and respect, they may share with you and ask for advice. This is one of the factors that makes any game popular, and Stardew Valley has done it perfectly. Of course, as I've already mentioned, there is also the combat skill that you can train, since there are monsters that you'll find by going deep underground. Although it's a daunting and dangerous place to go, the materials and tools that can be found are certainly worth the effort, as this will make the rest of your farming life a breeze later on in the game.
The other side of the story to the game is that the Joja corporation has devastated the town by not repairing the ancient infrastructure. Your task? Rebuild the town to its former glory or join forces with Joja, however, I assume this may affect your farming business and people's perspective on you. Not only that, but you can also get married, start a family, and even have kids, which makes it so much more than just a farming game.
With this much possibility already, of course, you are also able to fully customise your living area as well as your character. With up to eight players at once, this game gives plenty of opportunities to make your perfect community. There are so many different aspects of the game that could be good to use as inspiration, so I'm sure something will make it's way into our game one way or another.
Aside from the core mechanics of the game, I did get some time to play it myself, and personally, I
Pumpkin Panic
This next game is a lot smaller in popularity, as well as the actual amount of gameplay, however, it is still a great one to research, especially for this project. Not only is it based on an isometric style which is what we are going for, but farming is one of the core mechanics, just like our game. It includes both 2D images, as well as 3D models to get the special effect that you get from playing the game. I have once again not, played the game yet, however, it is free and I don't think it takes too long to complete, so that is quite useful. The main reason it probably is free is because it was originally released on itch, but was later released on Steam, probably due to the short burst of popularity that it received.
Now the actual mechanics of the game are a bit lacking compared to other, similar titles. The first main one is the gardening mechanic, and it's as simple as walking over the designated spots for the plants. This could include planting and harvesting, but you can also water them, which adds another layer of gameplay into the loop. Although I feel that the gameplay could've had some more depth to it, I believe the main reasoning for this is that it is partly a horror game, and so you don't want to be in the middle of planting something and then a monster appears from out of nowhere and attacks you.
Additionally, there is also fishing that is relatively simple but adds another mechanic that helps you get more money to buy upgrades and stuff to help complete the game. Talking of the stuff you can buy, there are a few different seeds you can get which grow various plants. There are other upgrades that you can buy as well to help you get through the night, and speed up the planting and harvesting procedures.
Along with being a chill farming game, it also has some horror elements, mostly consisting of the monsters that are roaming around outside. Since I haven't played the game yet, from what I can find, the main monster is the crawling one that is found outside. You'll know when it's close since music will begin to play, and your only chance of survival is by sprinting inside your house. There appear to be a couple of other monsters, one appears whenever you get too close to the deer that walks around, and the other is a shadow monster that you will know is around when candles go out, meaning you should leave the house. The only other bit of information I could get from looking around is that there is a clown that has a balloon. You are meant to take this but return it later to keep him from killing you later on.
Upon playing this game,
Farming Simulator 25
This game is not only very popular, but it is probably the most developed farming game on the market. Another game that I have yet to play, and I may not get around to it at all for this project, since I still need to play the other games, and this one costs a lot more, so it isn't something I can just pick up without an issue. Although I would assume this is the only farming game that replicates the job as good as this, I could be wrong, and there may be a better game, however, this is all I know for now.
Diving into what you actually do in the game, there is quite a bit. Straight off the start, you can choose to play solo or with friends. I think this is a great option to have, especially considering a competitor such as Stardew Valley allows you to do this. Not only can you grow and harvest crops, but you can also care for animals, practise forestry, and manage massive farm businesses with the various construction and production needs for the shops. Not only that, but you'll have to prepare for the seasons and assess the impact that various weather conditions will have on your crops. Tire tracks in the dirt and sunrays beaming through treetops is what immerses you in the game, and makes hard labour seem almost relaxing.
Within agriculture and animals, there are lots of options for things to plant and animals to breed. With plenty of crops from peas and spinach to cotton and sunflowers, you will be having a great time finding out what pays best, and what you can afford to grow early on. With regards to animals, you can house some regular cows and pigs, or get some buffalos and goats to spice up your days. Not only that, but you can get babies too, which just enhances gameplay completely.
Not only is the natural life exciting, but you can buy top-branded machines and equipment that really make you feel like you are living the life of a farmer. Want a nice and new, shiny tractor? You can get it; it even comes with GPS-assisted steering, and other equipment will have just as useful features to help your farm take off. Not only is it cool to have real brands and equipment, but you can immerse yourself deeper with the incredible graphics that you get.
Aside from the base game, the game has a large modding community that is always creating better content to make your experience even greater. A lot of people in reviews are saying that the mods enhance the gameplay a lot, which is the case with a lot of large games. I think developers get a lot of hate when modders do things better, however, they can't always do much about it since they are always working on other projects and have to fix bugs a lot of the time, so it isn't always feasible.
I think this game has a lot of potential that could be added to it, even though it's already such a large game. The main reason I believe this is because modders do add so much, and this game has been around for years, so I believe that the time, more could've been added. For our game, I'm going to do some research into the conditions that plants require to grow, since we want to try and add this as a mechanic. I would assume the main part of the game that I need to look into for this is the crops, possibly the greenhouse being the main thing, but I'm unsure so far.
SUPERHOT
SUPERHOT is an intense, slow-motion action FPS game where you fight through waves of enemies in a truly cinematic world. You have to do everything you can to avoid enemies punching, shooting, or harming you in any way, since you lose the round instantly as soon as you're touched by something dangerous. That said, you have the power of time manipulation, where the slower you move, the slower everything happens around you. This makes it easier to dodge bullets and think about you're next move. However, you should be wary, since one wrong move could put you in an unskippable situation, where you may have to restart the level.
Diving further into the gameplay mechanics, you can see that the game's time only moves when you move. This immediately comes across as a power that should make the game smooth sailing, however, it is far from it. Considering you are outnumbered and usually have no equipment compared to the enemy, you'll have to fight through them, grabbing whatever weapon they drop to help you against the others.
The game is recognised as a puzzle game like no other, which is clear from its unique gameplay. Not only is a first-person shooter game not commonly the used game type for puzzles, but the time aspect brought into it is also unique. Upon combining the two, you get a very satisfying game to play.
Other than the main, core gameplay aspect, there's a decent amount of lore found within the game for people who want to find everything and want to know everything about their favourite FPS puzzle game. The games include additional mini-games, certain challenges for levels, as well as many other things for players to discover. This is what sets games out from the rest, since the level of additional detail not only fills up a game with more to do, but can make the user feel like they get more value for money, which already isn't too much compared to some other games.
Lastly, this game is proof that making a rough idea and seeing how well it performs is a great way to tell if it's worth building a full game around it. This is because it was originally created during a 7-day FPS game jam. I assume that it gained some traction then, which gave the developers the motivation to create and release the wonderful game we have today.
I think SUPERHOT's time mechanic is something we could look into for our game, since it's something that hasn't been explored that much yet in the gaming world. Furthermore, this game just does a lot right, from great low-poly visuals to silky smooth movement, this is a great reference for our game's development.
In this planning stage, I also wanted to hop into Unity and begin looking at how the movement would work, what sort of interactions with plants and stuff I could include, and pretty much make examples for everything within the game. This would be made inside of Unity (example below [13]), and I would hope I can make a basic test scene that I can use to see what the game should play like in the final product. Not only is this a good idea for us, but it's also a good way to show people what our initial ideas for the game were, and how it progressed into the final product. This stage is also crucial for making any changes to certain mechanics. This would probably be because I would find it too difficult to implement, and since I don't have a lot of time, I'd rather get a game with a decent amount of playability, compared to one with very little, especially since this is only a demo, but a demo should be completed to a certain point to give players something to look forward to, rather than being confused or let down. Additionally, having a demo with little gameplay could put an audience off if the testing product doesn't live up to many expectations.
In regards to what is actually going to be used inside of this prototype, I think I'm not going to use any good-looking assets, but something just very simple to get a rough idea. For example, I'm definitely going to be making the movement script that we'll be using, since that is something that I think I could struggle with the most and I may take a lot of time to do, so getting it out of the way now is a great idea. The character assets used for this will probably just be a stick figure character that I quickly make in Photoshop, and either use the perspective tool for looking in certain directions, or I will draw it out separately, but once again, this will only be very rough designs that shouldn't take long so I can spend more time developing the code.
Another mechanic I'll be programming is going to be the planting and harvesting mechanic. For this, we were thinking that whenever your character was around/on top of a patch where a plant can be planted, you would click E or some UI and it would give you a prompt to let you choose the seed you'd like to plant. Similar to the character images, I would very quickly make some designs that would clearly represent the various stages of plant growth, as well as any inventory item-styled things that represent the seeds and plant. On top of this, I would certainly have to make a basic selling script so I can test how I want this to work, especially since we've had a few ideas of how we want to get money for the plants but have not decided fully on what we want to do. This will of course be extremely crucial once we come to creating the game, since I need to know what to code, and Lucas needs to know what he needs to design, so this is all very important.
One of the last things I can think I want to be included right now would be the way that you buy seeds in the game. Originally, I was thinking that you start off with a seed and once it grows, you can harvest it and you get a random amount of seeds back, somewhere between 1 and 3. This mechanic would have been similar to that of Minecraft's farming, but the problem that we'd have is that this is a very simple and easy infinite money trick that requires very little effort. I think in the demo, we will just make it so you have to purchase seeds again, meaning that you always have to spend some money, and maybe we could make it so you have to sell at least two to get enough money to buy more, however, if we were to make the full game, I could include an upgrade to a certain patch that includes a certain chance to get the seed back from harvesting the plant. This would be a low chance, but something else that would be upgradable.
Prototype List:
Movement mechanics and images - ✔
Character camera follow - ✔
Correct isometric perspective - ✔
Planting and harvesting mechanics - ✔
Selling plants -
Buying more/new seeds -
Adjusting conditions for plants -
Patch upgrades -
Placing shop shelves -
Player Movement
For the first part of the prototype I'm making, I thought it would be a good idea to start by actually making the character, along with the movement code, since this is the main mechanic in pretty much any game.
To start, the best thing to do was to hop into Photoshop and begin designing a basic character as a base example to use in the prototype. For this, I went along the same route I took when designing Bob, the stick figure that I animated for the pitch presentation. However, I made it look a little better, as well as adding something that somewhat resembles a farmer's hat since you are technically a farmer in this game. I then also made a few walking to the side views, as well as forward-facing movement, so you are a bit more focused on the game since it seems more natural rather than your character moving around, but with a stationary image.
Next up, I needed to make the script for the character movement. Originally, I was trying to follow a tutorial online, but they were doing different things, and since I haven't done anything like this before, it was very difficult to get it working in my own way. Because of this, I went down the path I originally thought about, which was waiting for a specific input that would then change the position of the character by a certain amount. As you can see from this code, although it works, it isn't the most optimised, and I would still have to add more later to change the images depending on where the character was moving, so I thought it was time for a change.
However, before I move on to the new piece of code, I'm just going to briefly explain this piece of code. Because it runs in the Update() method, this will be running every game tick, which is usually a few hundred times a second, I believe, so it will be checking the player's inputs a lot. It then starts by opening an if statement that checks to see if both W and D are pressed. If this is true, then the position of the character will have a 0.05 increase on both the x and z axis. character.transform.position selects the character game object's position. The += is then going to add more data to the current amount, and we use a new Vector3 since a Vector3 allows us to use 3 different numbers, or in this case, x, y and z. Because we are adding this amount each time, it will make the character move around nicely. I have then pretty much done this for all of the other possible movement combinations, and there are a few things I found out whilst doing this.
The first is that you need to have the double keycodes put above the single ones, since otherwise, the double ones won't work since the single if statements already become true. The other thing I realised is that the character moves faster when moving diagonally (e.g. pressing A & S at the same time). This is found in most games, and it happens because you are adding 0.05 to both the x and z axis, which is faster. The best way to visualise this is to imagine a square with sides of 0.05 and draw a line diagonally through the centre. This then creates two triangles, and in this, we have a hypotenuse side, from which we can do some Pythagoras, and find that the centre line is always going to be a shorter distance. Because this is basically what I've done in the game, the character moves faster diagonally. Although not a game-breaking bug, it is something I would try to fix if we were to release the game, since I find it really obvious already when playing the prototype, so I'd rather it be normal and hardly noticeable. I know one thing that developers quite commonly use is a way to have a circle for movement, so the amount is equal wherever you move. However, since I have no idea how to do this, I'm sure it would be easy enough to do some math and figure out the ideal amount to move along the x and z axes to avoid this happening.
Before I move on, I just wanted to explain a couple more things. First, the reason I don't add any value to the y axis is that the character is purely moving forward and backward, left and right. Changing the y-axis values would move it up and down, which is a level of depth at the moment we don't have in the game, and probably won't have at all for this project. The other thing is the reason that I have an f at the end of the decimal number is purely because it only reads integers without, and the f allows you to use decimals. At the moment, I don't understand why, but I'm sure there's a good reason.
The finalised code for the movement is here, and there is a lot to go through. Although I did sort of keep the movement code from above, everything else is pretty much changed.
Going through this code, then, I of course started by opening the class and listing the variables I would need. I can't actually remember now if I did keep the Rigidbody component in the script, however, I know that in this code, I didn't use it, and I believe I only added it because the tutorial I was watching had it. Moving on, I then had a SpriteRenderer, which is what I used to change the sprite the character was, and a little down, there is the character game object. There is also a Sprite array that I stored all of the movement sprites inside, which is what I use later on to change the images. Below this, I have two float variables. The walk speed is another variable I don't think I needed, so I think I just forgot to remove it. The animation timer is needed later on, though, as well as the frame toggle, which are both private variables since you won't need to edit them within Unity at all.
Diving inside the Update() method, straight away we created a new Vector3 variable called moveDirection. We then made this nothing for now, but this will instantly be changed since it's what we use for moving the character. I'm saying "we" in this part since I did ask ChatGPT for help in this script, since I had no idea how to animate the changing sprites later on, and it also optimised the movement for me. I have gone on to edit a couple of things that I didn't like, and originally I wanted 3 images to be used for movement forward and backward, but it didn't give me a very good solution for this, so for now I've stuck with 2. Moving on, lines 20 and 21 are what add z-axis movement, depending on whether W or S is pressed. As you can see, I have also decreased the speed down to 0.02, since it still seemed quite quick. A few lines down, it then changes the x-axis for movement using A or D. Then, after each key has been accounted for, it applies the movement to the character's position.
After this, it's time to change the sprite image. The first thing it does is check if there is no movement. If there is none, then it will set the spriteRenderer to the first sprite image inside the array, which is the standing, front-facing image. If the player is trying to move the character, then the animation timer is multiplied by Time.deltaTime, and this goes into an if statement, saying that if this animation timer is greater than 0.2, it will reset it to 0, and toggle from frame 1 to 0. Looking back on this now, I'm getting slightly confused, and probably should've asked for more clarification from ChatGPT, but in simple terms, this allows me to toggle between 2 sprites, which is useful for the animation. This works since after 0.2 of a second, it takes one away from the frameToggle, allowing the little animation to play.
The last part of this code starts by checking if the movement is greater than 0 on the x-axis, implying that you would be walking right. If this is true, then it will add one to the sprite, changing the spriteRenderer. Combining this with the above statement makes it alternate between the two images for moving right. The next part is pretty much the same, but instead it's for if the player is moving left (less than 0 along the x-axis). Lastly, if the character is moving any direction along the z-axis, it changes the sprite accordingly. Since the sprites are the same for both forward and backward movement, it doesn't need a separate statement.
Here is the result of this code. As you can see, the character moves around exactly as I want, and the sprites change, depending on the direction he walks in. For now, it looks decent, and I'm hoping that I can make the end result look just as good, if not better when we bring in the final character design.
Camera Movement
Next up on my Prototype things to do, I wanted to make the camera follow the player. At first, I thought this was going to be incredibly easy since there is an addon for Unity called Cinemachine, which not only implements this feature, but also gives you a lot of things to change to make it look as good as it can be. However, upon trying to get this working, it didn't want to work properly since every time I tried to play, it displayed the camera inside the character, but as soon as I moved something in the hierarchy, it fixed itself briefly. This obviously isn't ideal, so I had to go down the coding path instead, which didn't turn out too badly.
To start out, I got some help from Joe after I asked him if he knew anything about Cinemachine and the issue I was having. After he saw the issue, he thought it was probably best just to get a basic script done that does the job. He helped me start writing the code, however, I think the only thing I would've needed help with is the offset, but I probably could've worked it out on my own after a bit of time. Nonetheless, this was helpful to get me started; however, he didn't know what to do once we tried it in Unity, and nothing happened to the offset. Due to being the end of the day, I went away and fixed this issue later, which turned out to be that the offset we were setting was never being applied to the camera's actual position. I'll go through the code now so it makes more sense.
We have to do this in Update(), since we want this updated a lot to make it smooth. He started out by making a Vector3 called targetCamPos, which he then make equal to the position of what the camera is going to be following, which in this case is the character. There is also another variable above this which is the offset, and it is public so I could configure it inside of Unity. Having this offset variable (which yes, is spelt wrong), we then set the x, y and z parts of the Vector3 to whatever the x, y and z are for the offset. Upon doing this, the targetCamPos has the offset amount, and all that's left to do is apply it to the camera. However, this is where it went wrong since we never applied it to the camera, as seen on the last line. Instead, we set the camera's position to the position of the character (whatToFollow), so the offset didn't work.
After wondering what could possibly go wrong, I found the issue and fixed it. However, I wasn't satisfied since from what I know from coding so far, there was most probably a shorter way of writing this. Therefore, I contacted my best friend: ChatGPT. I simply asked if there was a more optimised way of writing this out, and there was. What it gave me was a two line piece of code, that does exactly what I want it to. It first makes a Vector 3 that it called targetCamPos. It then makes it equal to the position of the character, and adds whatever offset has been applied to the ofset variable. Lastly, it makes the camera's position equal to targetCamPos, and boom, a working camera that follows the player's character.
Another successful part completed for the prototype. As you can see, the character still moves around like normal, but the camera follows it. I tried to get a decent isometric perspective, however, this is all I have for now.
Seed and Plant Design & Growing Mechanic
The next part of this prototype was going to consist of me making a basic seed and plant design, with a few different variations for the steps of growth. I then will hopefully be able to code something that will pop up a menu that requires you to click on the seed you want to plant, and then the growth process will begin.
For this, I thought I'd go quite basic with it, and just make a sunflower. I know none of these designs are very good looking, but that's because this is just the prototype. Lucas has already been making a few plant designs that not only look good, but also are quite unique for just regular plants.
concrete cast - pot
paper grainy - dirt
colour soil changes for watering, good for ideal amount
After drawing out all of the plant designs in Photoshop, I hopped into 3DS Max to design a plant patch design that I thought was basic enough to make, but also gives you a decent idea for what I want them to look like in the full game. For this, I simply made a cube primitive and shaped it in a few various ways to get an angled pot thing. I then made a few more cube primitives for the feet and attached them to the main body of the patch. I also inset the top face of the base and extruded it downward so I could have something that resembled soil inside. For the pot textures, I used the concrete cast material in Substance Painter, and for the soil, I used paper grainy. After recolouring these, I'm very happy with the result, and it was very simple to do. Although I'd want a little more detail in the main/demo game, this low-poly art style should be relatively easy to make, and it contrasts with the other designs nicely. The last thing I'd like to include in the future is maybe different designs of the soil when you water it or something, which could also be used so you know how much is a good amount, however, this may not be that easy to implement, but all I can do is give it a go. The only way I can think of implementing it at this point is to either have multiple variants of the whole patch model, or specific variations of the soil that just look like they are part of the same thing.
For the next step, it was time to code in the planting mechanic. For this, I was thinking that once you get above a patch, you would have to select the seed you want to plant. This would be incredibly important once you get to the main game or the demo that we'll be working on, since I don't want the players to be capped at planting one plant in an area. Since I had an idea for what I wanted, I began making it, and this first consisted of making some UI that would pop up when you are around a specific patch. I was going to have an E pop up in world space, indicating that you have to click e. This would then show the plant seeds you own, of which you could then click the one you want to plant. At first, I thought this was going to be really difficult, and although it took a while to do, I think it's actually quite simple, I just forgot a vital step of the process.
I started out by making a few variables, two of which were the UI's that were going to pop up. The last is a boolean that checks if the player is in the specified area for the patch. This part is vital for the Update() method that I'll talk about later. The first thing I did after creating the variables was making the Start() method, which simply makes sure the UI's are inactive at the game's start.
After that, it was time to make the Update() void. This is immediately why that boolean is needed, since originally, I tried to check if the user presses the e key in the OnTriggerEnter() method, however, this only runs once when the player enters, so checking this is impossible here. Instead, I put this inside of Update(), which also checks to make sure the player is in the area, which is set to true whenever the player enters the area and activates the OnTriggerEnter() void. When these conditions are met in Update(), it will set the seedUI to active, which is what the player uses to choose what seed to plant. However, you may ask: how are you meant to know to press E? Well, that becomes apparent since there is the other UI that gets shown whenever you enter the trigger area.
The OnTriggerEnter() method is activated whenever a collider collides with the collider of the object that this script is placed on. In this case, I have made the character a hitbox that, when collided with the hitbox of the plant patch, will activate this void. This then immediately opens up an if statement that checks to see if the collider has the tag "Player". If it does, then it will display the UI that says "E", and it will also set the playerInTrigger boolean to true, so that the Update() part will work. The tag is a very important part to this that I originally didn't understand, which is why this part took me at least 30 minutes longer than it should've because I just forgot to apply the tag to the hitbox. The only reason I eventually realised was when I gave up and asked ChatGPT, and even this didn't help since it still didn't work. However, I kept pestering the chatbot, and eventually got it to give me an in-depth breakdown of every step to get this working. Eventually, I realised I hadn't applied the tag, and thanked the AI for its time.
The last part of this code is pretty much the same as the entering stage, but instead, OnTriggerExit works whenever the player's hitbox is no longer in contact with the patch's hitbox, resulting in the UI's disappearing (getting set to inactive), and the boolean variable also getting set to false. After completing this, I was happy with the result and began thinking of ways to get the plating mechanic actually working.
For this part, I first started thinking of the ways I'd like this to work. I first realised I'd need a timing function, in which the only way I knew of this being possible was through the use of IEnumerator. I then also thought that the only way, and I'd guess the easiest way to make the plant grow, was by just changing the sprite images, similar to how I did the character. I assume that the best way of doing this is going to be through using a for loop.
After I got the thinking done and out of the way, I began implementing a few things. The first thing I did was I created a new array variable that I would put all of the sprite images inside so I could call them later on. I called this variable sunflowerStages. Later on, I also found that I had to create a new boolean variable to check if a plant was already planted, since I didn't want to be able to plant more than one, which was exactly what happened that led to this variable being created.
Going a bit further down, I started by making a new method that I called SeedBuy(). Originally, I had an if statement that I hoped would test to see if a specific button was pressed, so I could plant the correct seed. However, this didn't work out as intended, so I instead opted for just calling straight to the Coroutine method. This later developed into an if statement that checks the hasPlanted variable, to make sure there's only one plant that gets planted at a time. While this is false, this will activate, but it will immediately turn to true.
Diving into the best part of the code, I began by making a for loop that, at first, checked if i was less than the length of seeds, which was a variable I originally had in there to make sure the correct seed was planted. However, I realised that I wouldn't need it right now, especially after wondering what was wrong with the code, and finding out that I had set it to check for the length of the wrong variable. After that mishap, I changed it to sunflowerStages, making sure it would always stop after that amount. For each time the for loop runs, it begins by setting the correct growing stage to active. The first stage in this case is the planting of the seed, which just shows a seed in the ground. After this, it then checks that i is at least greater than 0, and if it is, it just sets the previous stage to inactive, so it doesn't show two stages at once. I'm not too sure if this is needed, or if it will break it on the first state, but this works, so I'd rather not find out. At the end of this, it just runs the thing I've used this method for: WaitForSeconds. At the moment, I've set it to only 2 seconds, however, I plan on increasing this in the main game. Maybe not by a lot, but something that doesn't make it seem too unrealistic. I may also set it so that different stages take a certain amount of time, and that if specific conditions are met, then it could grow faster. This is also going to complicate the code even more than it already is, so I may be looking for a bit more than I can do, but it's worth a try if I get the time.
At the end of the code, I have the finalised result. Of course, I had to apply the game objects to their specified variables, but this is relatively simple, and didn't take much time. I'm really happy with how this turned out, and I don't think it would take a lot of effort to make it work with multiple other plants too. However, I'll have to wait and find out when I either add more for the prototype, or when we get into the making stages of the demo game.
Harvesting Mechanic
For the harvesting mechanic, I'm probably going to have to add on to the code in the script for the planting mechanic. I think the most difficult part about it is going to be the actual storing of the items, and then being able to use them later on. I would've thought when I get a hang of it, it won't be that difficult, but the only thing that is somewhat reminiscent of this is when I made the clicker game, and you get money from clicking the block. The most difficult part after that is going to be the selling mechanic, because ideally, I want to have separate scripts for the various game mechanics to not have everything littered into one, but this might not be that simple because I'll probably need to use variables and things from this harvesting script meaning that I may have to have it all in one. I'm not sure how that's all going to work yet, so I guess I should just focus on what I'm doing now.
Before I began experimenting with some harvesting code, I wanted to make some changes that would improve the quality of gameplay. These were only small things, but I think they make the UI feel more polished. For example, when you click e, the E hint UI disappears and the seed one appears. This just diverts your attention towards the new UI a bit more, and I feel that it just makes sense, since pressing e again won't do anything, and therefore it just removes that possibility that the player may have.
The other thing that I added was so that the e hint UI wouldn't show up if the plant had already been planted, as well as removing the possibility for the seed UI popping up. I did this because I removed the ability to plant a second seed, so I thought that it's pointless to include the option to, and this will give you a better idea of when it's ready to be harvested.
The next part of creating a harvesting system would be having to include an inventory to store the items picked up. Keeping the plain, prototype theme, I didn't make it look that visually appealing, but instead just something quick that worked and displayed something. Aside from the look of it, I knew I needed to code it, and this was something I was going to need some help with.
Before moving on to the code, I made sure this was the ideal size for the items that I would put into the inventory. In the main game, I might see if I can make something that sizes itself depending on what is in the inventory, or make some inventory designs that change whenever you upgrade the amount of space you have. I was also thinking of having images instead of words showing what you have, however, I'm not sure how easy that is going to be to code, so I'll have to think about it later when we get to the main production.
The actual inventory system is very simple to make. First, I made a TMP variable that would be the inventory's text. I will assign the correct variable to it inside Unity, and this will allow me to edit the text.
I then made another variable, this time being a list of strings that I called inventory. This was what ChatGPT told me to use when I asked how to create an inventory system in C#, and it's probably one of the most important things I have learnt from the AI so far, since I had no idea that an alternative to arrays existed. Lists are similar to arrays in that they store data, however, arrays have a fixed amount of data that can be stored, and these cannot be changed while in-game. However, they are better performance-wise compared to lists, so you want to use arrays whenever you can. Lists are perfect for things such as inventories, since the player may upgrade their inventory space later on, which cannot be done with something like an array. I suppose you could, but you'd have to make a very large array that somehow gets limited to a certain number of items that can be changed throughout their gameplay. As you can see, I have also made an integer variable that is used to set the maximum number of items that can be included in the inventory list. I later used this in my code to stop allowing you to harvest plants when you have a full inventory.
ChatGPT also just gave me this method of code that will update the inventory UI text, depending on what the player has stored in their inventory. This is triggered whenever the player starts the game, as well as whenever they harvest and add an item to the inventory. The first part of the code in this void is selecting the text of the TMP text component, and just setting up the title part of it that also shows the number of items you are currently hording, as well as the limit of items you can hold. This then creates a new line for any other pieces of text that gets added.
The "foreach" statement is something that is again going to be incredibly useful, and is something I didn't know the existence of until now. This is such a useful function since it cycles through multiple things without having to use a loop, such as a for loop. To create this foreach statement, I had to declare a string variable that we called item, and it will go through all of the string variables inside of the inventory, which was the list I created. It then adds on to the text component of the TMP text variable, as well as making a new line at the end to get a nice list laid out.
At the end of making an inventory system, this is the projected outcome. I think for the prototype, this is perfect, since it does what it's meant to brilliantly, as well as giving me plenty of ideas that I can take into consideration when making it again in production. The one thing I would certainly change is putting it into its separate script, since this is something that will become increasingly more annoying later on, so it's better to just have the one script for the inventory. This is something I should strive to do for everything, since it keeps everything more organised and probably more optimised.
Another quality change that I made was not having the 2-second cooldown at the end of the growing cycle. As you may have noticed from the gifs, I sometimes have to move off and back on to the patch until the E UI pops up. This is because there is still a 2-second timer being played, but I don't think this is a good thing to have included. Instead, I chose to edit the code and add an if statement that makes sure it only runs the WaitForSeconds if the stage is any, except for the final stage (fully grown). This will make the harvesting mechanic a lot better since you'll be able to step on it and harvest the plant as soon as it grows fully, just adding a bit of smoothness to the gameplay.
At the end of all that, I think it's a good idea to show what the final script looks like for the planting/harvesting code. Of course, this also includes the inventory, but I think for the main game, it shouldn't include that. Doing this also makes it easier to see what I did when I come to making the final product, since I'll be reusing this code, just probably renaming some things.
Selling Plants
The next part of the prototype that I would be making is the selling of plants. Before I even started making UI designs for the money, I thought it was a good idea to first create the stand that I would be using as the structure to put plants on. This was relatively easy to model, and the texturing was just the same, since I just applied the material paper cardboard to the whole model, as well as changing the colour. I thought this material gave me a nice, woody texture, without looking super high quality. This then meant that it would fit into the design quite well. However, for the main game, I may just use single, flat colours, but I'll have to wait and see what I think looks best.
Once I imported the model into Unity, I first wanted to make sure collisions worked properly between the character and the plant stand. Something that I would've assumed would be easy later turned out to take a long time, since it wasn't working perfectly in the way that you always see it work in games. Unfortunately, the player is either able to walk through this model or is unable to, but starts being teleported backward slightly every time it walks into the model. I believe this may be because the character is made up of images being changed, and so it gives off this teleporting illusion. Of course, I could be wrong, but that is my only assumption. If I make a game like this in the future, I'd make sure to make the character properly, but at the moment, this is my best bet for making a game with a character.
As well as having a glitching character, this also affected the camera since it's following the character. When moving, this gives off a very jittery look, and I wanted to change that. With that, I went back to my best friend ChatGPT and asked for some help. Originally, it gave me nothing useful, since all of the collider and rigidbody edits it gave me weren't useful. However, it started getting better when it told me to lower the value of the project setting: Fixed Timestep. By default, it is set at 0.02, and I lowered it to 0.01. This setting is used for altering how often frames are run. In this case, it runs once every 0.02 seconds. Lowering this means there will be less time in between frames, making it smoother. However, this affects the performance, so it isn't advised that you change this that much. I assume this is how you change the frame rate in games, however, I am not totally sure about it, and for now, I don't need to worry about it.
In the end, it did suggest something that caught my curiosity - adding more advanced code to enhance camera movement. Now, this is something that I was originally going to have work with the Cinemachine addon, but as I've already tried it and it didn't work, I didn't think it was possible with just code. However, I would get proven wrong, since there are a few different ways to get more advanced camera movement. In this case, I chose to use SmoothDamp, which makes the camera following movements a lot smoother, and it is easily customised. I'm not going to dive into what it does, because not a lot has changed, except there is a new line of code added that uses SmoothDamp, and all that changes the smoothness of the camera is the smoothTime float variable. I'm also wondering if I'll be able to make this a setting you can slightly change yourself, but I might not because I think it already looks good, and I would want to have an example in the menu, but this could be quite difficult to implement. Also, this is a setting I don't think anyone would really care for, so especially in the small amount of time we have for this project, it probably isn't worth spending time on this setting.
Lastly, I had some issues with the character now colliding with the collider for the plant patch. Although you'd think this should be a good thing, at least for the prototype, I made it so the interaction was only the shape of the patch, but that also means that I don't want collisions for it. To get around this problem, I eventually realised that all I needed to do was turn on "Is Trigger" for the collider, and it works as intended. This option seems to remove physics from the collider and act more as, well, a trigger, which isn't making it act as a solid object. The character now has two colliders, one for triggering things and one for its hitbox, which is used for physics mechanics.
And finally, after all that, this is the outcome of the collisions. I think from this gif, the collisions look fine, however, that's because the video uses such a low frame rate, so it isn't really obvious enough. However, when you see it at a high frame rate, it is a lot more noticeable. Nonetheless, for this project, it works fine, and I don't want to spend too much time working on this when I can do other, more important things.
Although I would like to include more in my prototype, it appears that this may be the final thing that I make for it. This is because I do not have enough time to continue making stuff, since I have other research to complete, and after that, I can just start making the main game.
Anyway, for this, I wanted to make a plant pot that I would be using to then display the plants in. This was very simple to model, since it's just a cube primitive with some chamfered sides, and I brought the bottom inward. I then inset the top face slightly too, to give it some space for soil, and the model was complete. This is very similar to how I created the plant patch, and I even used the same materials inside of Substance Painter, just coloured slightly differently. I think this soil looks a little healthier, which is what it should be since people usually wouldn't want a plant in bad soil, and the pot looks quite nice.
One thing I did find out while doing this is that the normal map that I import into Unity needs to be set as a normal map. This usually gives an error message after a certain time, which fixes it, but I've never fully realised until now, and it makes the textures look like what they're meant to look like. If you don't do this, they are made to look very reflective and just quite bad overall, so this is something I'll be remembering every time that I now import textures into Unity.
Once I was happy with how it looked and brought it into the Unity project, I lined up 9 of them on the stand, and I did also add the sunflowers in. For the game, I was going to make it so the pot and plant were hidden until you place one on the stand. However, I think I'll change that and just make the plants disappear because it's a bit easier, and could give me a bit more time to do other things.
Prototype Evaluation
I think, although this prototype went well and was certainly worth it, I unfortunately didn't get everything completed that I wanted to. Although this isn't such a big deal since it isn't the final product that we'll be handing in, this does make me wonder if we'll get quite tight for time. The other aspect that I have to consider is the fact that we will have significantly longer to make this game. Not only will we have more time to make the proper thing, but I've already got a bit of a head start with regards to the code written, and this will give me more time to develop the other mechanics that I didn't have time to implement in this prototype. Furthermore, I won't have quite as many other things that I need to focus on, such as research, since that phase is what I'm doing now, and I should have that completed within the next few days at the time of me writing this. Lastly, I would've liked to have more time to develop more ideas and features, since this could've led to more research of games that have similar mechanics and other topics that we may need to include.
Looking back on this, although it looks very bare-bones and empty, there is a lot that has gone on in the time that I've had. Everything I've done are things I knew were possible, but actually making them and everything working as I want it to is really cool, and I think this game should turn out to play great for the little time we have if I keep working on it as I have been. I think the movement was one of the simplest things to do, but I'm glad that it works nicely, and can be quite easily edited. Additionally, the plant growing works well, and I'm hoping that it works great in the main game too.
I think making a prototype is definitely something I would do again, and I don't think I would change all that much, since the main difference would just be me knowing a lot more, so I would be able to write everything up quicker without having to put as much thought into it. I could always use assets from the assets store, however, I think it was good to make some small models and simple drawings, since I don't want to be using assets in a game that I make, so I might as well make something that I want to give myself a bit more experience making stuff too.
Throughout the creation of the idea for the game, we had to carefully consider ethical and environmental problems that our game may cover. The first thing we thought about was that each plant would require certain conditions to grow. With this, we would have to include some additional gameplay requirements to be able to grow some plants. For example, you may need to adjust the temperatures of the patch that a plant is in, or spray plants a certain amount so they are humid enough. This is ethically important because the player base could get annoyed that it isn't realistic enough, or it doesn't make sense that a plant can grow. Not only that, but it also gives us a great opportunity to add some extra content to the game, rather than just having some plants that you can grow anywhere. This could also give us some more plant types to add, since Lucas already made a concept design for a pirate ship, which would require some water pot to grow in, so that's a start.
As well as that, we thought that we could make the game a bit educational. Since it'll be a PEGI 3 game due to farming being very chill and not having any violence or gore, our playbase would consist of all ages. Additionally, I think it would also be fun for all ages, since the game will have a decent amount of gameplay to grind through for the older audience, as well as having a fun art style and gameplay mechanics that make it fun for the younger players. On top of that, I'm planning to add some sort of educational descriptions of the various plants, which could help improve players' historical knowledge of the different time periods included within our game. This makes the game not just a low-quality version of Farming Simulator with significantly less gameplay, but also a game to educate the audience about ancient history in a fun and goofy way.
Lastly, we believe that in real life, farming has a massive pesticide and emission issue, which we hope to avoid within our game. At least in the demo game we're making, there shouldn't be any kind of products that you can buy to be able to improve plant growth and/or release certain gas emissions. On the one hand, this is good; however, if we were to make this a full game, we could add a way to release something like gas emissions, but this would give you additional costs to pay. For example, the in-game government or whatever could charge you for the gas emissions. We could say that they do this in certain areas that have high levels of pollution in the air, and this is a way to discourage players from using mechanics such as machines to do work for them, since they lose money. There are lots of ways that you could discourage certain gameplay aspects to improve the environment, and we could even add more features, such as trees you can plant, which will reduce the amount of emissions you produce. This encourages players to make a greener world, which is something we could do in life anyway, and this could act as a baseplate to experiment with ideas before bringing them into real life.
Researching Games
[1] Steampowered.com. (2024). PUMPKIN PANIC on Steam. [online] Available at: https://store.steampowered.com/app/3177920/PUMPKIN_PANIC/.
[2] ConcernedApe (2016). Stardew Valley on Steam. [online] Steampowered.com. Available at: https://store.steampowered.com/app/413150/Stardew_Valley/.
[3] Hawkins, T. (2022). Slime Rancher: How To Get Phase Lemons. [online] Game Rant. Available at: https://gamerant.com/slime-rancher-phase-lemons/.
Pitch Presentation
[4] Google (2024). Google Images. [online] Google.co.uk. Available at: https://images.google.co.uk/.
Game Logo Design
[5] Aspy, R.G. (2017). Mickey Tattoo. [online] Pinterest. Available at: https://uk.pinterest.com/pin/15410823707913981/ [Accessed 6 Mar. 2025].
[6] Cawthon, S. (2023). Clock Sketch. [online] Pinterest. Available at: https://uk.pinterest.com/pin/179721841373236879/ [Accessed 6 Mar. 2025].
Pre-Production Folder
[7] OpenAI (2025). ChatGPT. [online] ChatGPT. Available at: https://chatgpt.com/.
[8] Sadowsky, M. (2012). Farmers Market Plant Stand. [online] Pinterest. Available at: https://mx.pinterest.com/pin/33214115972327591/ [Accessed 18 Mar. 2025].
[9] Walmart.com. (2020). TribeSigns 63" x 20" x 12" 5-Tier Black Wood Plant Stand (2 Pack). [online] Available at: https://www.walmart.com/ip/5-Tier-Shelf-Curved-Rack-Plant-Outdoor-Pack-Multi-Purpose-Flower-Garden-Use-Tribesigns-Stand-Patio-Balcony-Bonsai-2-Indoor-Display/730125501?wmlspartner=wlpa&selectedSellerId=101020346 [Accessed 18 Mar. 2025].
[10] Pinterest. (2015). Plant shop. [online] Available at: https://uk.pinterest.com/pin/1688918600121162/ [Accessed 18 Mar. 2025].
[11] matlao (2020). The Plant Shop. [online] Pinterest. Available at: https://uk.pinterest.com/pin/615445105318005293/ [Accessed 18 Mar. 2025].
[12] Made-in-China.com. (2025). Outdoor Folding Instant Custom Ez up 10X10 Pop up Awning Marquee Gazebo Canopy. [online] Available at: https://879e6542a0969124.en.made-in-china.com/product/hQVUqxTyObWt/China-Outdoor-Folding-Instant-Custom-Ez-up-10X10-Pop-up-Awning-Marquee-Gazebo-Canopy.html [Accessed 18 Mar. 2025].
[13] Studio by UXPin. (2021). Video game prototyping – How To Do It and Why You Should! [online] Available at: https://www.uxpin.com/studio/blog/why-and-how-to-use-video-game-prototyping/ [Accessed 19 Mar. 2025].
[14] ConcernedApe (2016). Stardew Valley on Steam. [online] Steampowered.com. Available at: https://store.steampowered.com/app/413150/Stardew_Valley/ [Accessed 20 Mar. 2025].
[15] Steampowered.com. (2024). PUMPKIN PANIC on Steam. [online] Available at: https://store.steampowered.com/app/3177920/PUMPKIN_PANIC/ [Accessed 20 Mar. 2025].
[16] Steampowered.com. (2024). Farming Simulator 25 on Steam. [online] Available at: https://store.steampowered.com/app/2300320/Farming_Simulator_25/.
[17] Scariati, A. (2022). Essential Things Everyone Needs At Their Camp In Grounded. [online] TheGamer. Available at: https://www.thegamer.com/grounded-camp-essential-things/ [Accessed 4 Apr. 2025].
[18] Ff14housing.com. (2020). Oblong Garden Patch FFXIV Housing - Outdoor Furnishing. [online] Available at: https://en.ff14housing.com/itemview.php?id=a86f74cb8d7 [Accessed 4 Apr. 2025].
[19] Steampowered.com. (2016). SUPERHOT on Steam. [online] Available at: https://store.steampowered.com/app/322500/SUPERHOT/ [Accessed 15 Apr. 2025].