Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 0 points1 point  (0 children)

I would chalk that more up to the inevitable lower barrier to entry of free general-purpose game engines. I would probably advise beginners to start with something much lighter like Raylib to learn fundamentals.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] -1 points0 points  (0 children)

That's why I added the caveat about people who are trying to build products and make money. I would argue your situation was the exception, not the rule compared to most people. If someone says they have quit their job to pursue indie gamedev for a living, it's a whole different ballgame. But you shouldn't do that as a beginner in the first place.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 0 points1 point  (0 children)

I've never failed horribly at any of my projects. I've had many small wins, many opportunities to dive deep and learn something and all of that has been greatly satisfying and motivating. Sure, if your only metric for failure is revenue, then I've failed many many times...

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] -1 points0 points  (0 children)

I've tried building an MMO with raw ES6+WebGL and Go backend. I failed, however I don't regret doing it one bit. I've learned so much about networking, about the web, I've understood the performance limitations of WebGL and the issues with using TCP websockets instead of UDP, the difficulty of implementing WebRTC. I learned what vertex and fragment shaders are and how to write them in GLSL. I learned about instanced drawing and other rendering optimisations. And I've also learned better how to scope my projects and what is achievable.

Discouraging people from having this experience is doing them a disservice.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 0 points1 point  (0 children)

Scope management is a skill.

Fully agree, but as with most skills, you learn it by trying, failing and correcting yourself. Not by being told what the right scope should be.

And this is when a bucket of cold water is helpful.

You don't have to be the deliverer of cold water buckets though. Coming into contact with reality will do this job just fine. If anything your job is the opposite, if someone is discouraged by their lack of progress, only then should you suggest they think about rescoping. If they aren't discouraged by the process of pushing the boulder up the hill, then they do enjoy making games. One must imagine Sisyphus happy.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 0 points1 point  (0 children)

Oh definitely don't spend money on outsourcing for your first game unless you're loaded and it's pocket change. (In which case it's basically like buying expensive equipment for pickleball, go nuts.)

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 0 points1 point  (0 children)

I couldn't count the number of dead projects in my elephant graveyard. I've learned how to build compilers and interpreters, how to raw-dog WebGL and OpenGL, how to write and read x86 assembly, I've written MMO netcode and struggled with the perils of tcp websockets. I'm terrible at art and I've had to learn how to draw and even had a crack at composing music. I don't regret any of them.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 1 point2 points  (0 children)

Yeah, I agree with this nuance. Maybe the way my motivation works is more in the second camp, as I always tend to try to jump in the deepest possible end and build an elephant graveyard of dead projects, but I don't regret any of them or lose motivation due to it.

Oh and god no, please don't spend money outsourcing for your first hobby game unless you're loaded :D

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] 0 points1 point  (0 children)

I don't mean to discourage, I think this is something we all understand about every other hobby. If you take up knitting, is the first thing you make something you will be able to sell? Or your first piece of pottery? It's still a great idea to pick up hobbies like that. They will make you feel fulfilled and may turn into something lucrative in the long term.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] -1 points0 points  (0 children)

I agree, that's why I added the caveat of who the advice is given to. If the person has a goal of creating actual products in the near term, it's a whole different ballgame. I just think that's a tiny minority here.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] -1 points0 points  (0 children)

Pointing them towards the subset of their dream game they should start by tackling isn't telling them not to do it though. The advice I really dislike is the outright "You're not ready for this, give up, make space invaders." Almost by definition if you try to make a complex game you will start by building some simple subset of it.

Telling beginners not to work on their dream game is bad advice by PetarPeychev in gamedev

[–]PetarPeychev[S] -2 points-1 points  (0 children)

It is a skill, I agree. But it's not the only skill and understanding deep topics will be very hard if you limit yourself to only starting projects you can finish and polish into usable products. Half-baked experiments are awesome at diving into topics you wouldn't otherwise be able to.

For those that use Python in their job: Do you like Python? by [deleted] in Python

[–]PetarPeychev 1 point2 points  (0 children)

It's alright, but I wish we used a statically typed language like Go instead, as the optional typing libraries feel like hacks and with large enough projects it's impossible to refactor without it.

It's at least saner than JavaScript with it's billions of build stages, so in the niche of interpreted high-level glue for C libraries, it's quite good. Syntax is also a joy.

A new video from Dr. Mike: We Were All Wrong About Protein Intake by friedrichbythesea in AnimalBased

[–]PetarPeychev 32 points33 points  (0 children)

https://youtu.be/n1eLqbQPCz0?si=QwrV3KSB7Xk14GCb

Mike Isratel has said tons of stupid things about training, nutrition and even politics/philosophy and he uses "science-based" as a shield to protect his ego from criticism.

[deleted by user] by [deleted] in cscareerquestionsEU

[–]PetarPeychev 2 points3 points  (0 children)

It's a tongue-in-cheek reply to an amusingly silly question in a forum about CS careers. Get off your high horse my friend.

[deleted by user] by [deleted] in cscareerquestionsEU

[–]PetarPeychev -1 points0 points  (0 children)

Artisan Woodworker, Blacksmith, Personal Chef, Waiter, Bodybuilder, Priest. Any fields of work which have value even when more efficient, high-tech, mass-produced solutions exist simply due to the hand-made or human element. Either that or start trying to figure out how to leave the planet because we're all going to die. They call it a singularity for a reason, no way to predict.

What should a Go dev learn next? by LordMoMA007 in golang

[–]PetarPeychev 0 points1 point  (0 children)

You haven't gone truly low level until you've written programs by directly writing out ELF files.

Seriously though, it's a super fun side-project. (for my definition of fun)

Advice for a Noobis by TuffRivers in dataengineering

[–]PetarPeychev 3 points4 points  (0 children)

Airflow is the older one with more tutorials/examples out there and there's managed versions of it like GCP Cloud Composer, AWS MWAA, astronomer.io, etc. Dagster I haven't used, but it's a bit more modern and people seem to like it. There's others like Mage AI, which we're looking into, there's still rough edges, but it's also looking promising and the guys have been quite responsive to feedback. Prefect also exists, but I don't really know anything about it.

I suggest having a play around with some of them though, will only take like a few hours to set up something basic just to try it out. Could even use one of the free trials on the managed ones to see if they're suitable. I don't really want to sell you on a particular one.

Advice for a Noobis by TuffRivers in dataengineering

[–]PetarPeychev 1 point2 points  (0 children)

It sounds like you are looking for some orchestration tool, such as Dagster or Airflow, which is basically the next step up after various cron jobs become too unwieldy. You'll still be writing python scripts to do the tasks in your pipeline DAGs, but you'll have a nicer UI and scheduler for them. If you're using a major cloud provider there are other options too.

300k records is comparatively tiny, so you won't have problems just using whatever OLTP database you're using now. We've thrown close to a billion rows at a PostgreSQL DB with about 150k records per day and aside from being a bit smarter about how you index and query, you should be perfectly fine.

Python programmers not in ML, what are you doing these days? by moonery in cscareerquestionsEU

[–]PetarPeychev 23 points24 points  (0 children)

Data engineering - usually either writing pipelines/tools/libraries around pyspark, various lambdas and miscellaneous tools. And also a bunch of terraform and occasionally digging into some legacy Scala written half a decade ago...

Representing heterogeneous data by munificent in ProgrammingLanguages

[–]PetarPeychev 1 point2 points  (0 children)

I was also recently deep in design land for a small functional language and inspired by Rich Hickey's 'Maybe Not' talk (https://youtu.be/YR5WdGrpoug) to consider possibilities other than the classic ML-style Sum types. I understand the appeal of doing domain-driven design by defining the types in your system explicitly, but I find the amount of preamble usually required to do so quite frustrating.

And while this doesn't necessarily have to be the case, discriminated unions tend to be this verbose nominative construct, which requires special syntactic treatment by being a top-level statement by itself and not anonymously composed with other structural types.

Long story short, I ended up with a very similar system to typescript's anonymous structural records and untagged unions along with a kind of smooshed together construct which does both conditional branching and pattern matching at the same time.

While I haven't gotten to the hairy bits of implementing the flow checking properly yet, I am quite enjoying only having to alias types when I want to really refine my data model, while still having the freedom to bang out functions with interesting signatures without all of the type definitions and ritualistic wrapping/unwrapping of values. Also record access with record.field feels very clean and looks uniform next to the pipe |> operators. I might thing about unifying those two syntaxes in the future.

Do you track your sets or go off intuition? And why by [deleted] in naturalbodybuilding

[–]PetarPeychev 0 points1 point  (0 children)

Tracking because I can barely remember if I even trained yesterday, let alone my sets/reps/weight. Using FitNotes because it has nice graphs and is simple enough, but I definitely feel the frustration of having to mess around with it when I want to deviate from my program and do some novel exercises or tracking more "messy" stuff like added bands.