gotyaoi Posted September 30, 2012 Posted September 30, 2012 Well yes, from the end of the video I assumed we were working with Tayledras, which has sethka or shethka instead. But anyways, very cool, and the GUI free bit is, if not easy, interesting and clever instead. Gives a bit more immersion and a slightly magical feel to something that is in fact quite technical.
jakj Posted September 30, 2012 Author Posted September 30, 2012 Ah, I didn't recall the Hawkbrother form of that term. Good call. Yes, the entire mod is themed to do with the mind, some of it actually a bit creepily, and other than the dreamcatcher, everything looks abstract and eccentric, without any truly "representative" icons. Just wait until you see how I implement the tranformation tools: It'll twist your brain, and yet, once you try it for a minute or two, suddenly using a GUI to do such a thing feels rather odd.
Lethosos Posted October 1, 2012 Posted October 1, 2012 Heyla! Would you happen to point us at a decent 3D model software package that can be used with the object format you're using?
jakj Posted October 1, 2012 Author Posted October 1, 2012 Heyla! Would you happen to point us at a decent 3D model software package that can be used with the object format you're using? I figure the ultimate 3D software (not counting the super-expensive commercial packages used by professional studios) is Blender. As for the file format: http://en.wikipedia.org/wiki/Wavefront_.obj_file (Seems open and widespread, so you should just be able to use Google to find "<3d program name here> wavefront obj converter".)
Xylord Posted October 1, 2012 Posted October 1, 2012 Heyla! Would you happen to point us at a decent 3D model software package that can be used with the object format you're using? Just a guess, but I'd go ahead and say Blender is awesome for a free soft. It can make pretty awesome animations too, if it ever comes to this... Edit : I've apparently been ninja'd.
jakj Posted October 1, 2012 Author Posted October 1, 2012 It can make pretty awesome animations too, if it ever comes to this... I'm not going to do frame-by-frame animation, nor physics-based animation. The animation I'll be including is just a modifier on the transformation. (For example, you can already say "rotate around the Y axis by 10 degrees", and you can simply animate that by saying "rotate around the Y axis 10 degrees every 250 milliseconds".) I'm also not going to implement advanced 3D features like materials and bump mapping: The only parameters accepted are model vertices of three coordinates and (optionally) texture vertices of two. Normals will be recalculated when loading the file and user-supplied normals will be ignored.
Architect Posted October 5, 2012 Posted October 5, 2012 I can not wait, I will have to start looking for a lightwave object (.lwo) to wavefront obj converter, as I have lightwave, (was a present from a company I did a lot of lightwave work for, as well as salvage of their old data from an amiga 2000 I love building both alone and co-opting with other people in minecraft and have loved modeling in lightwave for years, so this will bring the two together finally, Thanks so much for doing this!!!
jakj Posted October 5, 2012 Author Posted October 5, 2012 If you don't have any luck trying to find an existing converter, see if you can find some way within LIghtwave to export to a plain-text file.
Architect Posted October 5, 2012 Posted October 5, 2012 heh good luck. lightwave will not do that as best I have seen. I have heard that newer versions will export DXF files. and .wrl files are kinda like html files but with tons of co-ordinates, thus why I was hoping it would work with the mod. I can model something and post the .wrl file, so you can see what it is like, as for attempting to convert, I saw that blender would do this, so I am grabbing it to see what it can do.
jakj Posted October 7, 2012 Author Posted October 7, 2012 New video is up on how to manipulate 3D models within Minecraft without a GUI.
phoenix987 Posted October 9, 2012 Posted October 9, 2012 That's awesome. Does it also change the bounding box used for collision detection?
jakj Posted October 9, 2012 Author Posted October 9, 2012 Unfortunately, some things to do with blocks are tied to the block type itself, not the individual block (meaning it can't be set differently for different block instances). Collision boxes I should be able to do, because the function takes the X/Y/Z of the block as a parameter, but I'm not sure yet about other things.
GreenWolf13 Posted October 9, 2012 Posted October 9, 2012 Unfortunately, some things to do with blocks are tied to the block type itself, not the individual block (meaning it can't be set differently for different block instances). Collision boxes I should be able to do, because the function takes the X/Y/Z of the block as a parameter, but I'm not sure yet about other things. Is that why wooden slabs used to require a pickaxe to break, since slabs were (they might still be) the same block with different meta data for wood, stone, cobblestone, etc... slabs?
jakj Posted October 9, 2012 Author Posted October 9, 2012 No, that's because he copied/pasted the slab code and was too lazy/terrible/stupid to check his work. But you're thinking in the right terms, yes: Material is a member variable of the block class, so it can change at any time but can't vary intelligently based on metadata.
GreenWolf13 Posted October 9, 2012 Posted October 9, 2012 No, that's because he copied/pasted the slab code and was too lazy/terrible/stupid to check his work. But you're thinking in the right terms, yes: Material is a member variable of the block class, so it can change at any time but can't vary intelligently based on metadata. I see. So if I wanted to add 6 new brick blocks (Let's say red, orange, yellow, green, blue, and violet), I would add a brick block and then use metadata to specify what kind of brick?
jakj Posted October 9, 2012 Author Posted October 9, 2012 Yes, if they all are the same material, hardness, and blast resistance, and all have the same behavior (in this case, simple block), you would add one block and use metadata to specify the colour. (You could even do it as a re-implementation of the existing brick block by saying "Block . blocksList [ Block . brick . blockID ] = null ;" and then instantiating your block at the same ID, but I don't recommend that, because most existing recipes requiring bricks would not automatically use your type of brick, and another mod might already have replaced that block and your mod would obliterate that.) But if, for example, you wanted some of your bricks to be brick slabs instead of bricks, or stairs instead of bricks, or whatever, you'd have to use a different block ID. If you want to see metadata in action, go look at gotyaoi's stained-glass mod.
GreenWolf13 Posted October 9, 2012 Posted October 9, 2012 Yes, if they all are the same material, hardness, and blast resistance, and all have the same behavior (in this case, simple block), you would add one block and use metadata to specify the colour. (You could even do it as a re-implementation of the existing brick block by saying "Block . blocksList [ Block . brick . blockID ] = null ;" and then instantiating your block at the same ID, but I don't recommend that, because most existing recipes requiring bricks would not automatically use your type of brick, and another mod might already have replaced that block and your mod would obliterate that.) But if, for example, you wanted some of your bricks to be brick slabs instead of bricks, or stairs instead of bricks, or whatever, you'd have to use a different block ID. If you want to see metadata in action, go look at gotyaoi's stained-glass mod. Okay. That makes sense (I guess). So if I want to add multiple blocks that share the same properties, I would make a singe block class and use metadate to store textures and what the block drops. So it's like using a parent object in object based programming lanuages. I wonder if Eloraam does uses metadata with microblocks so that they don't take up 50 bazillion block ids?
jakj Posted October 9, 2012 Author Posted October 9, 2012 There are only four bits of metadata (16 values), so no, she stores it in the tile entity most likely. Tile entities and item stacks both use NBT to store effectively-infinite data, but it's a lot cheaper to do so in the tile entity since it's automatically cached in memory when the TE is instantiated, whereas the itemstack's NBT has to be read every single time (for example, every render frame). That's why microblocks don't work with non-RedPower blocks: They are not actually blocks (because in Minecraft, no matter what, only one block at a time can be in a spot) but rather are just custom rendering, and the only way to get custom rendering on another mod's blocks is to reimplement and replace that mod's blocks (which for multiple reasons is not practical at all).
jakj Posted October 12, 2012 Author Posted October 12, 2012 I have implemented pixel-perfect hit-detection in Minecraft. Because, why not?
Architect Posted October 13, 2012 Posted October 13, 2012 your skills definitely amaze me. can not wait for your mod to be available.
jakj Posted October 13, 2012 Author Posted October 13, 2012 It's really sad, though: What I'm doing is barely anything in terms of actual coding complexity. Most of my time is spent in delving into references and forum threads learning how all this stuff works: In the past couple of weeks, I've gone all the way through the history of OpenGL from version 1.1 to 3.1, learned vertex and fragment shaders, display lists, vertex arrays, and now vertex buffer objects, as well as the rendering pipeline and a crap-tonne else. My actual code boils down to "call OpenGL functions to draw vertices". That's it. No, really. The Internet has seen fit to provide me with algorithms at need, particularly the ones to generate weighted vertex normals, to do AABB collision (much more efficiently than Minecraft's builtin functions), and ray/facet collision with backface culling. I am proud to say, though, that I came up with my texturing algorithm all on my own: It takes any facet, rotates it to face forward, then tilts it to be perfectly vertical, and uses that to generate texture coordinates. This way, I can apply a texture to each facet individually and always keep the texture upright (so it matches the sides of vanilla blocks). I'm sure the Internet will provide me with a lovely projective-texturing algorithm for smooth surfaces when I get around to that. Oh, by the way, in terms of what I'm doing being so impressive compared to Minecraft.....well, the algorithms I'm using were published as early as 1990, and none are less than 10 years old, almost five times as old as Minecraft itself, and they're efficient enough that they're still getting linked around and used by university students to this day. (Just wanted to point that out, in case anyone here still harboured any delusions that Notch had any kind of promise as a programmer in general. I'd just like you people to think about the fact that I've learned about decades-old algorithms better than the ones in Minecraft, and Notch is older than me, is more educated than me, and (after the beginning, at least) had other people to help him at his work. Me, an absolute nobody, just doing this between Guild Wars 2 and driving a bus.) Bitter? Maybe. Still good, though.
gotyaoi Posted October 13, 2012 Posted October 13, 2012 You... you probably don't want to hear about the award mojang just won then...
jakj Posted October 13, 2012 Author Posted October 13, 2012 That doesn't surprise me, honestly: Most people are lazy thinkers, and instead of exploring the world for the best it has to offer, they just assume that whatever they happen to experience is the best that there is. No matter how many things in the world there may be, that have been done by smaller and fewer than him, for the people for whom vanilla Minecraft is all they've ever seen, he hung the moon.
Architect Posted October 13, 2012 Posted October 13, 2012 still amazes me, I have a bit of skill with modeling, but that is it, I could not get an IDE running so modifying anything I have seen to see what it does, is out of the question. my world mods are just as simple as renaming files and making sure the code can handle the new name, nothing more. I guess I need to not give up my real world engineering and building skills heh heh, *best I have done so far is build a CNC mill from scratch with no plans, just observing how my manual mill worked. * also I am impressed with your ability to actually do research, so little is taught about doing that. just how to pass tests, which is sad really.
jakj Posted October 13, 2012 Author Posted October 13, 2012 Yes, I'm fortunate enough to have been brought up by smart parents just before the decline of the American school system, so I had all the tools presented to me at the right time to embrace them.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now