This is what i can do. and i would love to be able to do these things in s&box as well.
(this project required me to look up a few things on stackoverflow etc, and i didn’t make the sounds, i did make the models and animations, not that they are very good though)
inverse kinematics hands used in animations for weapons. the targets are animated. but it requires a lot less animation than fully animating the arms: Video
(this projects was made without requiring stackoverflow except for how 3d models faces are written)
unity voxel based chunk terrain generator
(terrain generated using the generator)
generates chunks of 16 by 16 cubes using perlin noise. and creates a face for each side of the blocks that is touching air, else it will ignore it as you won’t be able to see that face anyway without clipping inside of it. it runs really well.
(max height 20 instead of 10 for more hilly terrain)
(this project is in java as opposed to c#, this was because i wanted to try out something new, so i thought. i think i know how raycasters work sorta so i might be able to make it using trial an error. i had never made a raycaster or even used the libgdx java drawing and input library. i had used opengl before in java so that made it a lot easier to know how to draw lines etc)
java libgdx raycaster
this project casts rays in order to generate a 3d view, as doom and wolfenstein 3d did in the early 90s. these rays i cast are a lot less performant than the ones in wolfenstein with the reward of being able to pick up on polygonal shapes if i were to add a system for making maps like that.
(on the left: the top down view, on the right: a fake 3d view generated just from these raycasts)
extra things i have (some) understanding of:
- basic trigonometry (apparently a lot of devs don’t and then they keep asking how to make the character move relative to the camera)
- opengl (i still need to learn more about the shaders though)
- basic tcp sending and rechieving data through a tcp connection, although my ways of doing it are not very secure. they do work and cannot be exploited to send the exact data that you want.
- quick learning i quickly pick up on new subjects. as long as i’m insterested enough i will pick up everything i hear/read about it. and will know how to apply this information, which was the case with the raycaster where i watched a video about how they work and then was able to make my own.
- i do 99% of my work for the enjoyment of others which means, if someone requests me to make something, i probably will (if it is a good idea of course)
- when someone tells me something is impossible but i think it is possible i will manage it i’ve had it happen a few times where someone tells me something is impossible. but at the end of the day, almost nothing is impossible as a developer.
It is pretty funny to think that 6 years ago, i had only started the very basic basics of programming on scratch. later i picked up on the c# programming language. after learning how to use it, i saw java and thought: “yeah i want to make minecraft mods”. and that’s where it all started. after i learned java i went back to c# for a bit, to then know both pretty well. then i learned python, then later php and sql. And programming is my biggest hobby and has been for more than 4 years now. In life nothing ever went the way i wanted it to. But my code does exactly what it should do, and i love that.
(another small thing that’s pretty funny. is that as the day of writing this (april 24th 2021) it is one day before my birthday)