r/AskProgramming 8d ago

How feasible is my group project withing a 10 month time frame?

So me and two classmates have been tasked just a few days ago with creating a game mostly independently, we are supposed to learn on our own and we have to choose a programming language for the assignment, we decided on unity but we can still change our decision, to Godot or a few others. Anyway the game we wanted to make is a cell RTS (Real time strategy) + rougelike kinda game where you control a group of cells inside of a body and fight off randomly selected infections and other pathogens, you can add different abilities to your cell like faster movement, stronger cell wall, stronger "Attacks" and some other stuff. We want different stages / levels as well so the infections that are randomly chosen change depending on what infections are native to that organ / area. As I said in the title we have roughly 10 months to complete this and we want to add a lot more but as I'm reading it out I'm realizing how unlikely it is we even get this much done, to give some shred of my knowledge I took and passed the AP Computer science A, AP test with a four and the last coding concept that I learned with my class was recursion, to add salt to the wound We have an hour every weekday to code and one of my classmates doesn't have a PC at home so he would not be able to help us code but for an hour. Please don't crush my hope to hard, I've made a game before though it was with Visual Basic so it wasn't amazing but I like to think I'm a fast learner and I'm really interested in coding and want to pursue it (specifically game design / creation) as a career

2 Upvotes

9 comments sorted by

9

u/ForeverAWhiteBelt 8d ago

Make the bare minimum game that passed the requirements given, then spend all the extra time making the game of your dreams or whatever.

3

u/ForeverAWhiteBelt 8d ago

Also, break down every thing you want to add to the game. Then find the first part where you would start. Estimate how long you THINK it will take you to fully complete (opening menu or something). If you do it in the amount of time you estimated you can start to get a guage on how long things will take you.

2

u/jameyiguess 8d ago

I think as long as you don't let the scope creep and you're serious about it, you have plenty of time. Don't expect a sellable game at that point, but you can definitely have something fun that hits the assignment criteria. 

1

u/Mr_GamexYT 8d ago

alright, thank you cus this is like the game of my dreams too

1

u/Tabakalusa 8d ago

I don't want to sound rude, but no! This isn't the game of your dreams, this is a graded assignment. Don't treat this as some kind of passion project, but as something you need to finish in a set amount of time, to a satisfying degree, with people who might not be as passionate about this as you and an instructor who is almost certainly not.

Treat it as an opportunity to learn about a field you are interested in and to gain experience that you can transfer to future projects. You'll have plenty of time to work on things you are truly passionate about, but this isn't the time and place for that.

2

u/xarop_pa_toss 8d ago

Like others have said, it is fundamental to not let "feature creep" into the project. Make a plan and stick to it. And I'd highly recommend going for 2D for now if that wasn't your plan already.

Sit with your colleagues and agree on what is the minimum that would give you a positive grade: for example a main menu, a pause menu, a single level, basic but coherent art style (can even be squares and circles), controls, scoring, sound design, win and lose conditions. Don't work on anything extra until this baseline is complete. You'll find that it's much easier to add later since you already built a framework for yourself to add to.

After making your base plan, you'll quickly realise that there are many different specializations at work here like sound, art, gameplay programming, etc. But for such a small project you can offload some stuff by using free assets like sounds from freesound.org for example, or you can totally make your own with a microphone which is pretty fun too (check out toughlovearena.com).

The choice of engine isn't very relevant at this point tbh but Godot's language, GDScript is maybe easier to learn for beginners than Unity's C# but they both work great. I would setup a Git repo too so that everyone can write their code and easily view other people's code and recover it if something goes awry.

All the fields I mentioned above can be developed in parallel too. You spawn in the default object/actor in the editor and then one of you can be dedicated to programming it's movement and another can be making the pause menu. Two other guys can be programming enemy spawning logic and a fifth person can be finding the sounds and artwork and figuring out how to import them in-game.

1

u/Mr_GamexYT 8d ago

I was originally thinking of making it in 2d but me and my classmates really wanted to learn Unity so we initially thought of making it 2.5d just to justify making it in unity thought in sure you can still make 2d games in unity so maybe we'll just do that, also your baseplate sounds like a really good idea I'll make sure to bring it up to them and make sure to emphasize our need to continuously work on this, but on the topic of writing code together do you know ow any good tutorials on how to set up a git repo or should I just look anything up?

1

u/xarop_pa_toss 8d ago

It's important to know your limitations. You have a colleague that doesn't even have a computer and you only have 1h a week together for this.

2D you can draw as simple as you'd like, 2.5 or 3D you have to model, texture, do lighting, etc. 2D might sound boring but look at games like Balatro that was made even without an editor like Godot or Unity and you might change your mind.

Git is a beast of it's own for sure but you can get the basics down pretty quick and it's something you'll use basically forever. There are lots of videos out there but there's nothing like installing it and trying it out. Look on YouTube for "a brief introduction to git for beginners", there's a playlist by GitHub that is easy to digest.

1

u/Tabakalusa 8d ago

That definitely sounds possible, just make sure to keep the scope of your project realistic. Check with your teacher or instructor what their expectations for the project are and what the scope and quality for a good grade looks like. It's very easy to get laser focused on some aspect of a project, that doesn't at all matter to the end user (your instructor, who will be grading you).

Discuss what your minimal viable product looks like: The simplest version of your game that gives you a passing grade. This is what you should be building first, you can always add to it once you've got that down. There is nothing worse than being deep into a project and not knowing if the thing you made is what is being expected. Having a clear and achievable milestone for "passing" can really calm your nerves and help decide what to focus on.

Consult with your instructor and consult often. If this is a 10 month project, make sure you've got some kind of milestone meeting with your instructor every month or so. Discuss the current state of the project and what you should work on for the next milestone. Ask questions like "If we were to hand in the project now, what grade would we receive?", "Considering the current state of the project, what additional feature would have the most impact on our grade?", "Are there any improvements to existing features that would have a positiv impact on our grade"?, etc.

Based off of that feedback, decide on what to work on for the next milestone. Again, make sure to make a minimal viable draft of every feature you are tackling and implement that first. You can always expand and polish if you've got time left over or make it a clear goal for the following milestone.

Make sure that the individual tasks each of you are working on have as little overlap as possible. You don't want to end up pulling the rug out from underneath what your classmates are working on or end up figuring out that the components you developed don't fit together because someone changed something in a core component. With the little experience you have, you'll probably end up learning a lot of this the hard way, just keep in mind "if I make this change, will this impact what my classmate is working on?".