17 ms·
Two of the most boring parts of Minecraft, unfortunately. Both are something your average first year CS student could put together in a weekend or two. If I ca
by Sir_Cmpwn 8y ago
Two of the most boring parts of Minecraft, unfortunately. Both are something your average first year CS student could put together in a weekend or two.
If I can indulge in some self-promotion, I have written mountains of code which implements many of Minecraft's behaviors down to the last detail, which may be a more interesting candidate for study:
https://github.com/sircmpwn/truecraft https://github.com/sircmpwn/truecraft
Seeing Balze3D open-sourced might end up being pretty cool, though.
- e1ghtSpace 8y agoNo way, Beta 1.7.3 is my favourite version. I'm going to have to try this.
- joshumax 8y agoIt seems more like they wanted to make the rounds on various blogs and news sites which will inevitably display something along the lines of "Minecraft is now open source!" In the end, based on what they've currently released it appears to be more of an advertisement than anything. With a huge mod community creating projects such as MinecraftForge, most of what is currently released by Mojang/Microsoft is largely irrelevant. If they release their game engine, however, that's a different story...
- kbumsik 8y ago> Two of the most boring parts of Minecraft, unfortunately. Both are something your average first year CS student could put together in a weekend or two. So sad that it's like average second year in my school's curriculum.
- throwaway180118 8y agoI'd really like to learn more about the concepts of this kind of game design. Where can I start?
- Sir_Cmpwn 8y agoIf it's my advice you're looking for, the only way I've done it is by studying someone else's game and attempting to replicate it 1:1. It's more an exercise in reverse engineering than in game design.
- lifeisstillgood 8y agoPerhaps a different phrasing of the question (certainly my view) would be "I could go create a (not 1:1 feature) game myself, as a project, and I would learn new stuff, but would I cover all the concepts built into Minecraft?" I would be interested in the syllabus that building a 1:1 minecraft would teach. So for example, "Minecraft creates the same world each time from a fixed X Byte salt, and uses these well known algorithms for generative landscape production"
- Sir_Cmpwn 8y agoAh, then some useful algorithms and keywords to study would be OpenGL, voxel rendering, A* pathfinding, cellular autonoma, perlin noise, etc. Red Blob Games has a lot of good articles covering many of these subjects, here's a few: https://www.redblobgames.com/pathfinding/a-star/introduction.html https://www.redblobgames.com/pathfinding/a-star/introduction... https://simblob.blogspot.com/search/label/noise https://simblob.blogspot.com/search/label/noise
- Reelin 8y agoIn addition to @Sir_Cmpwn's answer, the developer logs from Voxel Quest (@gavanwoolery on HN) and Seed of Andromeda are both excellent starting points for getting a general overview of what's involved in this sort of undertaking. Both of those games ended up releasing their full source code by the way, so you're also free to pick through every last detail if the logs aren't enough. Links: https://www.voxelquest.com/news/every-version-of-voxel-quest-ever https://www.voxelquest.com/news/every-version-of-voxel-quest... https://www.seedofandromeda.com/blogs https://www.seedofandromeda.com/blogs
- _hardwaregeek 8y agoAh yes, profunctor optics, an excellent topic for a freshman CS student's weekend project: https://github.com/Mojang/DataFixerUpper/blob/master/src/main/java/com/mojang/datafixers/optics/profunctors/Profunctor.java https://github.com/Mojang/DataFixerUpper/blob/master/src/mai...
- Sir_Cmpwn 8y agoDataFixerUpper looks more sophisticated on the surface, but it's egregiously overengineered, and tools accomplishing the same stated purpose could be made by a freshman with a couple of weekends to spare. It's also not particularly relevant to Minecraft, it's more of a general tool - so anyone hoping to learn about Minecraft from this will really learn more about Minecraft's annoying legacy baggage.
- LeifCarrotson 8y agoI think you underestimate how many weekends it would take a freshman - when I first took a CS course, I spent a solid few weekends working out array syntax, strchr and strncat, and how to best google compiler error messages. I was pretty proud of the text-based 2-player chess game for which I put in some late nights for my final project...a Minecraft renderer would have been a long way out.
- Sir_Cmpwn 8y agoThis isn't a Minecraft renderer I'm talking about. The Minecraft renderer would be the non-trivial project I said "might end up being pretty cool" if they open source it.
- stevekemp 8y agoWhen I went to university it was back in 94, and then people who took CS courses were pretty much self-taught programs already. Sure "theory-stuff" was often new, because of the self-taught nature of the under-graduates. (I knew what a stack was because I'd done assembly-language coding, but I had no name for something I'd "created" which was a linked-list. Funny story.) I assume nowadays with the internet people who want to code, can start early if they wish. Even if the lure of the outdoors is strong, and time is short. With that in mind I'd assume any first-year student could write a system for updating data-files according to simple rules, (i.e. datafixerupper), and manage a simple parsing-class of some kind which would let you tokenize and react to "/send foo bar" input.
- lghh 8y ago> Both are something your average first year CS student could put together in a weekend or two. Sometimes I see people and wonder which of these two things is true: 1. They have no idea what the average developer actually is. 2. They are lying to make it sound like they were elite when they were a freshman in college.
- Sir_Cmpwn 8y agoI did not go to college so I have to admit I'm not actually familiar with the average freshman's skill level. That being said, these are basic and well-understood problems solvable by the average, say, junior developer in the industry. Less of a reach?
- mclehman 8y agoFar, far lower than you're envisioning. There are certainly a lot of freshmen who could easily do something at this level, but the average freshman would be hopelessly lost (at least in my (recent) experience). By the way, excellent work on Sway. I've been meaning to jump to i3 forever, and decided to move to Wayland on my most recent install. I do have some bug reports to send your way, though, I should get on that.
- screye 8y agoAn average CS freshman knows how to write hello world and print Pascal's triangles on the command line. An above average freshman at an above average university can probably make Sudoku, Tetris or Brick breaker. Even the smartest students probably won't be able to make.minecraft in a weekend. Maybe as a semester long project. But not a weekend.
- LolNoGenerics 8y agoIt's not like they want to showcase their rocket science.
- Analemma_ 8y agoI notice that repo has commits ranging in age from 7 months to 3 years, so it seems to have taken you quite a bit longer than “a weekend or two”. Maybe tone down the arrogant trash-talking a bit.
- Sir_Cmpwn 8y agoAs I pointed out in a few other comments, the code that Microsoft has open sourced represents a tiny fraction of the Minecraft codebase, is only loosely related to Minecraft at all, and represents basic and well-understood problems in the industry.
- realSlavojTrump 8y ago>If I can indulge in some self-promotion, I have written mountains of code which implements many of Minecraft's behaviors down to the last detail, which may be a more interesting candidate for study It is an interesting case study. The code has failed to run for myself and the five other people i handed the project to with different configs. There are no tests that validate the project works. Its certainly work to be proud of, insofar as maybe its worked for some subset of people in the past. Edit: I was excited to work on this code and spent a healthy amount of time reading through all of it to find great places to contribute. After writing a small pr, mostly a throwaway to test the waters, I was greeted with unmitigated assholery by the main devoper and their irc crew. I kept the logs from an irc conversation i had about the pr as a reminder of how not to act towards developers on projects i work on.
- Sir_Cmpwn 8y agoWell, the code has been unmaintained for some time now, and only grows more stale (especially considering the .NET ecosystem has been in turmoil during that time). There are tests, though, but they only focus on the parts which are fragile or complicated: https://github.com/SirCmpwn/TrueCraft/tree/master/TrueCraft.Core.Test https://github.com/SirCmpwn/TrueCraft/tree/master/TrueCraft.... Edit: oh, I think I remember you. If I'm right, here's your pull request and the corresponding IRC logs: https://github.com/SirCmpwn/TrueCraft/pull/283 https://github.com/SirCmpwn/TrueCraft/pull/283 https://sr.ht/4tKr.log https://sr.ht/4tKr.log
- realSlavojTrump 8y agoIf there are tests and the project can still fail to run, is the test suite really good? Blatant and rude sarcasm: you dont need to answer because a freshman cs student would know the answer.
- deleted 8y ago[deleted]
- sytelus 8y agoIt’s quite amazing how fast kindergarteners gets addicted to Minecraft. Here is a suggestion: create special version of Minecraft for kids below 10yr old. Discourage killings, shootings (even for animals) and encourage building. This “Kids Edition” has great chance of selling hot!
- Pica_soO 8y agoThe hippys ideology failed miserable half a century ago. Hunting and killing is in our nature and removing it only ever resulted in removing the parts we found interesting from books, movies and games. My parents tryied that non-violence education nonsense- and even without movies and books, my brother and i found sticks to play spear and sword with. Is it that hard to deal with reality? If you want to prevent violent tendencies, then add a first aid weekend, where you help injured critters or humans- and tada, empathy grows, although you will never get the killer out of man.
- zamalek 8y ago> Both are something your average first year CS student could put together in a weekend or two. No unit tests in sight? Sounds about right.