Saturday, May 19th 2018
I made Minesweeper on Thursday. It's such a good too and not total crap. I'm surprised I'm capable of such 'decent' or 'intermediate' level programming. I could actually even put AI into the Tic Tac Toe game, but it was just easier to leave it as two player (and I ran out of time), it doesn't seem that hard at all and I already have an idea in place of how to do it.
Making Minesweeper, I mean, I guess I have made this game before years ago, and it was a text based version where you literally type in the coordinates e.g. (5,10) ,to activate tiles. It sucked. It was also a beginning programming project, so there was a lot of help along the way (it was the first and final college assignment for Programming 101, you started it on the first day and ended the course by submitting it), so literally other people were doing the same thing, and I did collaborate with other people. Looking back, I could do that assignment in like, 1 second today. It was so freaking easy in hindsight.
This version of Minesweeper that I made on Thursday, I had to create a 2D board, which was actually different from my 1D tic tac toe board. For the Tic Tac Toe game, I stored the tiles in a single dimensional array, so it was just a normal array. For this game though, I had to make a 2 dimensional-array, something I've freaking never done (because I don't think I've ever encountered any circumstances that needed it), and it was from scratch. So you would have to enter X and Y coordinates to access a certain value on the board, which was cool. It was really easy and intuitive to get this.
Man. It's not like I took a course on how to make AngularJS games before I started on these projects. I literally just did 50% of the initial AngularJS tutorial, the official one, and the rest I figured out on my own. And it's not like I did a lot of game development or any game development at all before this (the mobile games in my portfolio weren't programmed by me), so this was literally from nothing. It was so interesting how easy it was. Kind of weird, I think it's from viewing so many other people's source codes and watching snippets of different guides, that I was able to figure out how to do it.
I mean I've viewed the source codes of a lot of games, and wow, I actually did do some game development before this. It just came to mind that I made that Pong game and a simple demo RPG in Java before, with the help of a tutor who basically did all the programming and I just tried to learn, but I didn't learn much despite, well, I did learn a bit. I wanted to learn the 'secret' to game development, and from the Java perspective, it was literally what I expected, like, exactly what I expected. First the screen has to be made, then elements placed on it, then classes and so on placed onto it, then objects have to be drawn, then there has to be the keyboard input, etc.
What I never understood ever was the 'framerate' thing where you have to have a framerate for the game, and this was crucial, commands and other things can only be inputted and the computer can only change the display, per frame. Every second for example, you manually program 1000+ frames or so, I think, and it would vary depending on the CPU speed. It was such a crucial concept to understand, but I never understood the algorithm for it, but viewing every single Java game source code I've ever seen, they all had it, it's like they all copy pasted it from each other, and my tutor just told me to copy and paste it from the message he sent. It was one of the first things that had to be written per game, but since I only copied and pasted it every time, I never understood how it actually worked.
But yeah I guess from those lessons I was able to grasp the concept that there wasn't really any 'secret' to game development. It's literally intuitive how it's done. Like there's not a secret to chopping down a tree or washing dishes, some methods might be better others, but it's basically just doing exactly what you think needs to be done. There's that long process of setting the game engine up and everything, but yeah after that it's basically clear.
I'm attributing it again to all the other programming experience I've accumulated over the years. It wasn't directly in that field, but it was influential enough. I don't think I'm a beginner programmer anymore, well, actually yeah I do. I'm pretty new and have almost no experience in this field. Still, it was a fun experience making Minesweeper which I'll add to my portfolio soon. None of the games or demos in my portfolio currently work, but I think it would be easy to set it up to make them work. I'll figure it out.
Also, I'm not saying everyone's source code sucked. I'm pretty shit at programming if I'm being honest, just that some others are even shittier. There was this one guy who's source code was amazing, so amazing and impressive. I learned so much from reading his source code, and if I were to rewrite this game (which I will because of an idea that popped up), it would be implementing some of his ideas for sure. I mean most peoples' source code IMO sucked, but this guy's was good. Looking at his portfolio he had been programming for over 30 years since the 80s, and he had made some very impressive programs and algorithms, so it wasn't unexpected for him to have written such good code.
Also, if I looked at his source code without first having written my own version, then I wouldn't have understood it. Because I knew exactly how Minesweeper worked after making it, I clearly understood pretty much everything he was trying to accomplish, and I was like "Wow, so he did it that way!" impressive, just impressive. His way ended up with more lines of code though, going around 150 for what I was able to do in around 100, but I think combining some of his approach with my own, would drop down the lines to around 85 or so.
My mom wants me to clean the bathroom so I'll do that now.
What was I saying? Oh yeah, so minesweeper. Yeah. That was a fun game to make. It was basically like Tic Tac Toe, just slightly different. So once I understood how Tic Tac Toe worked, then Minesweeper came easily. One of the ideas I had was to make a paid course for learning how to make these three programs with AngularJS: To Do list, Tic Tac Toe, and Minesweeper. Like that's literally it.
I really want to do that. I don't know if it will happen though. I'm so tired right now after cleaning the bathroom. I feel like taking a nap. So sleepy. I'm going to take a nap and then continue writing afterwards.
Actually, screw it, let me continue writing. I went clubbing last night and it was alright. I danced the entire night, making it a goal to do so. Even during the breaks between songs when people would stop dancing temporarily I'd keep on going, and I think I won as the longest lasting dancer there not that there was anyone keeping track. It was alright.
Wait, did I go clubbing? Or did I go to a DJ concert? I think I went to a DJ concert, and that clubbing is something completely different. There were a few DJs that played, and a bunch of people listening to the songs and dancing. I danced for a long time, and a few girls randomly started dancing in front of me or around me. It happened so frequently, I think they wanted me to dance with them. There was even this one girl that, it was so obvious, she kept dancing in front of me and then kept making eye contact. I was so tired at that point though that I just had my arms crossed and was just bending and extending my knees like I was bouncing up and down in place, and my eyes kept closing.
Anyway, overall I thought it was alright. I may want to go again but probably not anytime soon.
Clean Up Room
Upload Previous Day's Entry
Web Development for an hour
Exercis e (At Least Walk Outside)
Upload Today's Photos
Work on a Backlog Task
More in the Extended Backlog page
Was today as productive as it could have been? No
Did I take over 10,000 steps today? No
Did I program a little today? No
Did I eat under 2000 calories today? No
Did I write at least 5000 words in my journal today? No
Did I take and upload my daily photos for today? No
12:00 AM – Clubbing – 3:00 AM
3:00 AM – Driving – 5:00 AM
5:00 AM – Preparing to Sleep – 5:20 AM
5:20 AM – Sleep – 11:40 AM
11:40 AM – Eating and Resting – 1:56 PM
1:56 PM – Catching up on Journal Entries – 2:23 PM
2:23 PM – Writing Journal – 2:53 PM
2:53 PM – Cleaning Bathroom – 3:04 PM
3:04 PM – Writing Journal – 3:15 PM
3:15 PM – Resting – 4:15 PM
4:15 PM – Wasting Time – 11:59 PM
Productive Hours (4:19)
Clubbing [Counts as Exercise] (3:00)
Catching up on Journal Entries (0:27)
Writing Journal (0:41)
Cleaning Bathroom (0:11)
Neutral Hours (11:36)
Eating and Resting (2:16)
Unproductive Hours (7:44)
Wasting Time (7:44)
Web Development: 178
General Programming: 8
Game Development: 4