Would CS50x save time for a first game like this?

Unemployed me and an unemployed friend living with our families wanna make a grid-based vehicle-building game (I know it sounds great). Like TerraTech or Besiege for example, but especially Stormworks.

The problem is we want to get something out as fast as reasonably possible. We don’t want to waste time. To us that means diving right in and ironing it out, even with no experience. And we still expect it to take at least a year and I’m sure that’s possible, but would that be the best? I know it’s going to be difficult regardless we have some experience or not, and either way we might just make an okay game. If we wanna do this fast though, I’m starting to think just going right in won’t save us a lot of time. I’m wondering if learning just with Godot will save time or not. I also think it’d generally be better to take CS50x so that we know most of the questions to ask to begin with, and because we want to eventually do more with the game. Not to mention the lack of any experience with project management. But would it save us time?

Another issue: The biggest idea with this grid building system is to be able to add/manipulate vertices of a block and create your own shapes, at least a ‘custom block’ that lets you do that (in run time). Other than that, we plan the game to be a simple sandbox with some basic maps, likely no water stuff and simple everything really. We aren’t looking to make a detailed game. What I’m most worried about is, I don’t know if barely making this building system is going to be playable, let alone throwing whatever potential technical solutions we find at this stuff working out. We aren’t too concerned with how well the game runs at first, but we’d like it to be playable and expand upon it later and I would like to know if it’s worth it for us to just keep diving in?

We know of the paid GDquest courses, but we can’t really afford that right now.
Also, do we need to start practicing hard maths or can we save that for later?

Starting with CS50 is definitely a good idea. Do that first and see where it takes you.

2 Likes

For the customized grid issue, I would suggest looking at this post

This community is filled with some people who are crazy good with Godot, and may be able to help you to a much further extent than I may be able to now.
(Also, this community is really nice from what I’ve seen of it, I love it.)

On the chance that this project takes over a year, I strongly suggest you don’t give up. Obviously, there’s the reward of actually finishing the project, but this game also sounds really interesting, and I would love to try it out.

Short:

Check out the link, don’t give up :+1: :D.

2 Likes

Calm down. Sprinting will just cause you to trip.

This is what we call in the development industry a SWAG. A Scientific Wild A** Guess. If the two of your are committed and disciplined you could have something in less time. If not, a year may be optomistic.

You can learn programming with any language - including GDScript.

I’d do this as a side project to learning how to use Godot. Learning how to program will help. I recommend using GDScript for Godot though, and not C#. It has a much gentler learning curve, is more forgiving, and is better for rapid development.

No. It’s not going to save you much time. It will certainly help, but as a professional who has been hiring CS grads for over 20 years, I can tell you now that most people with a four year degree in Computer Science don’t necessarily know how to architect anything. Focus on making your game and iterating. It’ll be a bit more painful, but much faster and will prevent analysis paralysis.

Google Scrum and Kanban. They are both GREAT project management solutions for small teams. Then take a look at GitHub or GitLab. They both have built-in ticketing solutions. Figure out how you are going to divvy up work, and start making tickets. Just putting it in a system will give you an idea of the scope. I’d lean towards using GitLab if I were you, as they support time tracking out of the box and tracking how long stuff takes will help you get a better idea of how long things are taking you.

To me, this sounds like a fun exercise. I recommend you really spec this out. Instead of a vague post saying that it’s like three games we’ve never played, say: This is what I want. If you give us enough details in a help post you’ll either get really good help on it, or one of us will just do it for fun one afternoon. (See @aWildRoc’s post above for an example of me doing just that - and I’m not the only one.)

There was this company in the late 90s that spent a BUNCH of time making a level editor for their game. It allowed their level designers to pump out levels, and then the tool was so polished, they released it to the community. That became Unreal Engine, and as you know Epic is doing very well for itself now.

Taking the time to make a quality level editor will make a huge difference in how easy it is to build your game.

Make the sh*ttiest game possible. Then make it better.

There are a TON of free courses on YouTube. Start there. In fact, start here: Your first 2D game — Godot Engine (stable) documentation in English And then here: Your first 3D game — Godot Engine (stable) documentation in English

I also highly recommend you try out GameDev.tv’s Courses. They are $10 to $15 and very long, really well done, and they provide message boards and human helpers. Find one that most resembles your game idea, even if it’s not close it’ll be something, and dive in. You will learn a lot. Even without paid courses though, you can learn a TON on YouTube.

You do not. When you run into math questions, ask here. People will direct you to resources for learning.

Game Template

If you are interested, I have a Game Template Addon that you can use to get going faster. I use it for all my games. It’s pretty well-documented, so might be worth a shot for you as well.

Conclusion

Good luck!

4 Likes

Look at the CS50 syllabus. “S” doesn’t stand for “sharp” and “C” doesn’t stand for C.
I’d recommend the opposite. Take Godot as a side project to CS50.

2 Likes

Thanks a bunch for the advice, it’s really appreciated. I’m glad we don’t have to take CS50 before being able to do anything, or learn math. And the analysis paralysis is definitely one of the things we want to avoid the most. Thanks for sharing the game template and other resources as well.

I was planning on GDScript. We’re probably going to have CS50 as the side project, but there is two of us so we could both and maybe learn more that way. I know my friend wouldn’t wanna do CS50 as much lol
Also I don’t know the the S and C is about here but it means computer science right?

CS50 should be your main focus because it deals with fundamentals. If you’re not well familiar with everything there, you’ll have a very tough time actually completing a game. GDScript is just a language and no GDScript course/tutorial will systematically cover fundamentals the way CS50 does. If it looks boring to you then you probably shouldn’t go intro programming in any serious capacity.

3 Likes

Yeah I know what GDScript is. Thanks for emphasizing the importance though, at least I’ll be the one taking CS50 as the main thing then. It’s not boring to me at all though I just want to make sure I’m still in touch with Godot.

Yes I know it stands for Computer Science. I went to college and took many CS courses. I was just anticipating OP learning about “real programming languages” and then thinking they needed to use C# instead of GDScript.

This perhaps means that your friends might be better off learning 3D modeling or something like that.


@normalized FWIW, my advice is geared towards getting them working and encouraged so that they then want to learn more in a CS course. I’ve had a number of IRL friends try to learn programming, and they inevitably have a much harder time if they aren’t working on a project and the failure/give up rate is much higher. I do agree that learning how to program is very important to be good at this.

2 Likes

I think that’s a good excuse to get my friend into CS50, at least if they still wanna keep programming. Also, should I aim to continue elsewhere from CS50x when I’m done or is that good enough?

You should aim to go up to 400 level classes and beyond if you can. But do what works for you. You’ll find your strengths. For instance, just because I can do complex math doesn’t mean I enjoy it as much now as I did in my 20s. So if I can’t remember stuff I look it up or ask on here. Some people like it more.

3 Likes

From what I’ve seen, CS50 is project-focused. Just that the projects are tiny. Which is great.

For someone who is in the process of learning programming fundamentals, I’d actually advise staying away from complex environments like a game engine, because on top of trying to learn the fundamentals, you’ll need to fight with many other advanced concepts specific to game engines. It could get overwhelming and sidetrack you. Then you’ll succumb to instant recipes you don’t fully understand, acquired via tutorials and chatbots, and risk ending up in tutorial or llm hell. Which is the antithesis of fundamental competence.

Instead, just focus for a while on making small standalone programs that run from command line. That’s precisely how CS50 approaches it. It is Harvard after all. They should know a thing or two about education.

Investing time in quality fundamentals will pay great dividend down the line. The knowledge will be transferable to almost everything you do. Doing a C based fundamental course would be particularly beneficial if your aim is game programming. When making a game, you’ll constantly stumble on “low level” problems, even if your programming language is “high level” like GDScript.

So to directly answer your initial question, yes, CS50 will, in the long run, save you a lot of time and effort.

3 Likes

I’m not ever getting ‘advice’ from LLMs dont worry about that

I figured messing with/learning about Godot once in a while would give me some relevant perspective to what I could do. I don’t plan on letting Godot stuff stall me on CS50.

Ramble here: I also definitely want to learn how to use C++. I think that would help with understanding those low level problems, and we might do that along with GDscript (if the building system or something needs it). I like the thought of low level stuff even if it might be tedious (I want to try to not waste time though). As a kid I would make levels in LittleBigPlanet2, and we just had logic gates to weave the high level stuff together (I didn’t make much but I would prototype space shooters, war vehicles, and made an air hockey level). And for a long time as a teen (8k hours lol) I’ve played Brick Rigs where you have to make the logic gates with signals (and there was high incentive to make logic as simple as possible to keep vehicles ‘low brick’), way more primitive than Stormworks or LittleBigPlanet2. But yknow, that experience’s not computer science (and I hope those experiences don’t end up with weird *ss code lol).

Ramble Edit: By making logic gates with signals I mean like electrical engineering stuff I guess.

The logic is ‘analog’, sensors output a varying signal and things called switches process those signals through a In1 In2 Out1 Out2 system. And having multiple inputs would sum those inputs, so we had multiplication and addition (eventually we got math bricks which gave us division).
(I don’t know how to describe that system simply, but I can probably pull out a desmos)

CS50 doesn’t touch C++. It barely introduces C. I think the main purpose they chose to start with C is not really to train you to use it. Instead, it’s C’s capability to clearly illustrate how computers actually work, without frying your brain like assembly would. It’s almost the ideal language for learning computing fundamentals.

1 Like

Yeah, I just thought C++ was relevant to the low level problems thing.

You can make a game in Godot without ever needing to go to C++. Most of the common “low level” stuff can be handled from GDScript but the catch is - you need to conceptually understand that low levels stuff. And exposure to C helps greatly with that. For example, if you don’t fully comprehend what a byte array is, how are you supposed to make a distinction between RGB8 and RF pixel formats in GDScript’s Image class?

I might not end up learning C++ for this game but it just sounds cool to me. If I have an excuse to use it I will, eventually. But yeah, stuff like that I definitely need to know.

Also thank you guys a bunch for all the advice. Forgot to say that this is a really good first impression of this community, and thank you guys for that. I look forward to interacting with you guys and this community in the future

4 Likes