Internally screaming with Mike
Im Mike im trying to learn how to be a computer. Hopefully one day my computer will be organized and my system will be programmed.
CLASSES: Sysprog Comporg
Wow its been a heckin awesome year, and a great time in the CCC computer classes. Ive just made it so the boss spawns in my NES game and life is good. Hopefully im gonna pass all my classes this semester and make more progress on my games before the semester is over. This is an interesting semester for me because it was basically a “be an engineer for a semester” type of semester for me and it has not been fun. But at least i know now that i do not want to be an engineer because wow thats a lot of grinding numbers for solutions that arent at all rewarding. At least with my NES game i get to immediately see when i fix my code or write things that are readable in english as well as mathematics. Im hoping that i can use this visual programming sometime in the future because its awesome.
I need to make more progress on my SDL game, i just made it so i can shoot a dart at enemies but i have not made the enemies yet so hopefully ill get that working eventually. Im interested to see how it turns out. I have a lot of faith in myself that i know what i am doing when it comes to coding and im really enjoying it and im glad that i picked this as a major instead of my first idea which was business. That sounds so mundane and boring and useless to me, id rather make programs and look at memes for a living than crunch numbers and be an accountant. Does not sound like a lot of fun to me.
For our NES game i was thinking we could implement our big boss boye sprite that rana made for our original game, and maybe get the heart powerup working, that would be awesome, because right now brainstorm lacks a lot of depth a far as gameplay goes. It could at best be an atari 2600 game. I was hoping for it to be a little easier to develop than what we encountered, because the collision detection was wonky as hell and i dont get a lot of it or how rana ended up figuring it out, but props to her for that. If i were to make this into an SDL game, id imagine i could make it so much better. Maybe that would be an awesome project for this summer, is to code a working SDL game thats like brainstorm but way better. Id be really excited to see how that goes.
My idea for improving my game as part of the EOCE, is after 50 pipes, the game turns into a side scrolling shooter, im really excited to see how i can make that work, hopefully it shouldnt be too hard with collisions detection and all. I like SDL more than the NES roms because everything seems to work without trouble, but thats because the hardware of the NES is ancient. Im thinking maybe a few waves of enemies spawn, with different methods of attack, and then a big boss BOYE that is harder to kill. Just a simple idea to improve an already simple game.
Post break journal, im dead inside. This break has killed any and all motivation that i once had in order to do a school thing. Especially for physics. This semester has been a painful one for me mainly because of calculus and physics being two classes i never asked to have to take, but hopefully when its over ill feel more motivated to do what i want to do, which is software development. That is my official transfer program into brockport and im really looking forward to what i learn from that school i was very impressed with the tour that i was on at the school. I would have liked to spend more time on brainstorm this semester but really my other classes have been kicking my ass.
Flappy bird has been done for a while, i chose a relatively simple game to program, because i feel it is an IMPORTANT starting ground for programming something visual. A lot of people think breakout and snake are two easy games to program, but however i think that flappy bird is far easier than either, and plus you get a little bit of everything, collision detection, movement, i added pause and unpause features, as well as sprites, fixed gravity, and much more, and it seems to be a lot easier for humans to understand than the other games because its so simply made. Its a brilliant game for programming. In order to finish this journal assignment i need 6 more words.
In comporg this week we messed with wiringPi and did more stuff with our NES game. It was a lot of fun, and i added a few pollish things to our game like i added a thing so when the game was over all the sprites moved off the screen, and then i added more housekeeping things, like an attempt at a game over screen. I also found which memory address changes the wave of zombies in the raw memory editor. Which i think that is pretty fun to mess with, if you change it to 255, they move backwards. I think making the NES roms and SDL games have been a fun experience this semester given how little experience i had with either of them at the start of the semester.
This week in sysprog we learned more about wiringPi with speakers and stuff like that, it was a lot of fun, but again the wiring part got confusing with the circuit thing. It was challenging to get the 7 segment display to work without a lot of hassle. But after a while we eventually got it to work and it was a beautiful sight. What did we do with it? we made it count to 9. Marvelous. In other words im pretty sure my flappy bird game has been done so i dont have to worry about that anymore, id like to use SDL to make something a little nicer in the future, but because of my lack of time this semester has been about “what can i do in this time frame”.
This week in comporg we did more on brainstorm. We are really coming to figure out that the hardwares limitations are a pain in the ass. WE had a problem where our zombies were not at the wall yet, and the health was still going down. But we figured this out (thanks to matt) that it was because we were allocating arrays for zombies that we didnt spawn, so their were invisible memory zombies floating around (probably initialized to zero). This was troublesome for me and Rana to understand because we arent used to something like that happening, or having an if statement freeze the whole game, or having to think of things in such an old fashioned way. BUT Rana made absolutely insane progress on our game today, we made an array of missiles that is actually function, and according to her, somewhat good hit detection, and we are working on a game over screen that says “Tumorthy has died.” Which i think is absolutely hilarious that we named him tumorthy, that will forever be my favorite part of the game as a whole.
Flappy bird is done, so ive been thinking of ways to try to make it more and more unique. So i added a screen that asks you “would you like to play again?” and then a pause feature which i think is a unique thing to add and figure out. The game doesnt stop processing, its just stops moving, everything freezes, which is pretty funny to think about all these years i thought the code just took a break, had a cigarette, and continued when it was ready to go. But thats not at all how coding works.
This week in comporg we got more progress on our game brainstorm. We added an array of projectiles so you can fire more than one wave at the zombies. We have also figured out that the NES 6502 does not like division or modulo. It will crash if you try to perform an operation like that. Also we found out that any value greater than an unsigned char will not work in our code, so our idea of a health bar of a thousand will most likely not work. I also wish that there was an easier way to write the health to the screen, because it is actually pretty challenging! Like we are trying to get the health bar to go down when the zombies reach that side of the screen, however its not working, and the health bar just goes down because it can. Im not sure what is causing that. I am so grateful for SDL and other graphics libraries, they make life worth living.
FLAPPY BIRD IS FINISHED BABY!!!! I managed to code a working flappy bird without reference from any outside sources just my own brain. I know it is a common game to make a clone of, but its about the understanding that is important. I really liked making it, i had a lot of fun seeing my creation come to life. IM not happy about using my first GOTO statement however, i just didnt want to have to retype my whole code, so thank you matt for authorizing it, it have me more to think about for the next game i make. I should structure it more and make it intertwine with itself.
This week in comporg we worked on our games and did more stuff with assembly. Assembly looks like a lot of work for nothing, so other than using it for like raspberry pi /os type of stuff i dont understand the use of it. Its not something i seem skilled in at the moment so hopefully i will have some practice with that. Rana and i's game is coming along quite nicely, so far we have been able to get our custom sprites working as well as get zombies that move across the screen with a background that is static. I really like this one! This is like the first time ive ever built something from the ground up with very little context, and even though its not much at the moment i have to say im pretty proud! I think that its cool to see our own brains making something that is functional. Now we just have to counquer my biggest fear, hit detection yikes! I can never seem to understand hit detection, and where to start and where to end with it, so hopefully it will all make sense soon enough, after all i have to implement it in my flappy bird game as well. So double yikes with that one!
This week in sysprog we messed around with more SDL collision detection as well as worked on our projects. While mine is just a simple flappy bird game, its something that im working on with my limited knowledge of how SDL works. Im anxious to see what i make of it, because its really hard to find assets for the game that actually work and arent hugely THICC. So hopefully i can spend some time and make some improvements on that game before its too late.
This week in comporg we looked more closely at assembly language and what it means as far as the 6502 processor goes. I feel like it is so simple that it is complex and im really hoping we get a hands on experience with coding in assembly. Im also hoping most of the assemblies are the same because i dont find 6502 to be useful as far as future coding endeavors, since it is an outdated processor. Im hoping that most of the core concepts stay the same though. I like what we have been doing as far as the NES roms, but it would be helpful to see more and more stuff to go with specifically assembly and not C. Im hoping both of these classes stay relatively mellow because my physics and calc 2 classes are really testing me and my sanity so hopefully i can keep it together.
This week in sysprog we did more and more sdl stuff, and i really like messing with SDL now. Im really curious to see how it goes when we try to make our own game. I want to make a game kinda like flappy bird, except maybe more of a platformer instead of jumping through the pipes, but i need to work out how to map out the hitboxes for landing on the platforms. Sounds like a lot of messy if statements. Overall SDL is coming along kinda nicely, i was also thinking of adding a certain level system maybe so the game gets harder as you progress, like maybe your character is jumping higher than normal so its unpredictable where you will land. I hope that this all goes well and i have a finished product that was all my idea in the end. Because i never really feel like what im learning is something i can actually use or something that i actually made. Its not like we can just remake ms paint again and have the world say OMG YOURE A GENIUS. Because its already been done, and its hard to think of things that havent been done before.
This week in comporg we made more roms with the 6502 libraries in C. This was interesting to me because im almost starting to understand how this works with the screen addressing and all. However this almost seems cheaty to me because i feel like its not as low level as it should be. Id imagine coding in raw assembly would be absolute hell and it would be really annoying and tedious to see where your bugs are. God bless C. I really would like to see what else we could do with this 6502 stuff just from scratch instead of pulling from tim cheeseman. I also feel like learning ARM assembly could be of certain importance.
This week in sysprog we messed around with more and more SDL stuff. Its a lot of fun using SDL consdiering two semesters ago in C i had the hardest time learning how to use it because i was thrown code with absolutely no context on how to use it or what a library even really was. I think its interesting to see how each individual thing works, like with our cat sprite and the step counter as well as the timings and timers. Its crazy how all that stuff is done in the background with just a simple function call. It makes me wonder how the heck the people that made SDL even figured out how to do that. Its gonna be a lot of fun when we can make our own little game with it ill be anxious to see what i can come up with. Hopfully it will be something original :).
This week in comporg we looked at more NES stuff. This week we made an NES ROM, that looked liek a cool title screen that would cycle through colors in a fancy way. Today we are making a movable sprite with a controler to make a more game like experience. Im learning more and more about pattern tables and stuff like that and its really exciting because i used to play and collect NES games when i was younger so its really exicitng to see how it works and actually make what they made. I just wonder how people learned this stuff then, because it seems so abstract to me even though it should be painfully stupid. Im excited to see what the rest of the semester has in store for me.
This week in sysprog we messed with more SDL. I like SDL a bit more now, and almost like it more than the tiles in comporg, because its a bit higher level and makes more sense to me. I like our cat sprite it makes me happy and im excited to do more with it. Id like to play with SDL at home more but sadly calculus and physics are my life right now. I think that sysprog and comporg kinda go hand in hand because they show both sides of the spectrum, higher level graphics and lower level. And its really neat to see stuff you make on the screen for once instead of in the terminal with text only.
This week in comporg we played around with more NES stuff. We made a hello world program that graphically made a hello world come up on the screen with NES type font. I also got to look at some weird assembly stuff, i dont know how anyone ever could read or understand that code its ungodly short. It is something that i have to learn though, id like to make something fun out if it which is why im happy we are doing NES stuff because i love old video games and stuff like that. Things are different in C because we have to LITERALLY set memory for everything ever, its not really doing a lot to help you.
This week in sysprog we did more stuff with SDL, this time we made separate files to deal with our functions and put them together. Its really cool to see what youve programmed visually and gives you an appreciation for video games as a whole. I like thinking about how video games were coded as i play them now. I think video games helped revolutionize computing by accident. Because theres so much to think about in terms of logic. I always wonder how they make it so optimized when i feel like i could make a command line program that still lags and takes time to compute. Their programming has to be very very fast. All in all im excited to do more SDL and make more stuff with C.
This is my first day in computer organization. Today we talked about processors and semi-conductors and transistors. It sounds like a very intricate class but also so incredibly simple that its hard. Im excited to see what i can accomplish in this class because data and discrete made my teeth sweat last semester. With calculus 2 and physics behind my back also im hoping that this semester doesnt kill me. Good news is i shouldnt have to write any research papers. Processors sound like a heckin fun time for book learning.
This week in class what we did was we played with some SDL. SDL is something ive been intrigued in since last semester. I wonder what sort of “system” programming we will be doing this semester because theres so much to computers its like how do you differentiate one thing from another. Like is this just a continuation of c? Or is this an entirely new beast. This is a relatively small class compared to the ones ive been in before. I hope that taking three classes at the same time isnt gonna screw with my understanding of this lovely programming knowledge. I tried to learn how to use visual studio over the break and it was entirely different so im not sure where that all plays into my computer science knowledge. I wanted to build a thing for my boss but i just lacked the knowledge of data bases and other things.