Go download the code. Compile it. Run it. Enjoy the immersion in the game. Then read the code. Learn its under the hood secrets. http://neverball.org/screenshots.php
Neverputt Gameplay - Desura
Computer Programming And More
Sunday, January 27, 2013
DigSim - Java Code from 1996
In my job as a Senior Software Engineer, I write C and C++ code for embedded applications. I have been employed professionally in that field for more than a decade now. I will describe the products for which I wrote software in some other post.
Lately, in my free time, I have been concentrating on studying various architectures and implementations for software that is open source. I think that it is essential that a software engineer steps outside of his or her own narrow product world to look around at other software that is out there serving a variety of purposes.
However, remaining current and well informed can become the bane of the software engineers existance. There is always some new thing to learn out there. While some software engineers maintain a life / work balance, there is always that temptation to swing over to the dark side and spent your entire existance eating and breathing software.
The key to survival is to know that no matter how many things are out there to learn, there are still only 24 hours in a day and that we humans are plagued with inconveniences such as having to sleep 8 hours of that day. Then there are such time sucks as eating, bathing, driving from point a to point b, exercising so that we don't die at 50 from a heart attack, putting time into making and keeping friends, finding a mate, rearing children to keep us from reading code 24 / 7.
To keep things manageable to improve your chances of success, you have to pick and choose your battles so that you don't end up being Jack of all trades, master at none. You don't want to be 'Software A.D.D', buying software book after software book and only reading the first 2 chapters of any given book before moving to the next shiny new toy. I have been Software A.D.D. before and it isn't pretty.
Applying this philosophy to my own life, I have recently picked a few applications to learn while putting others in the queue. Whether I will get through all the items in my queue depends on those incoveniences mentioned above. At most, I can pull 2 things out of the queue at one time and spend a little time on one and then on number 2. Emptying the queue will take years.
In a future post, I will talk about on gaming project written in C, using SDL and OpenGL that is consuming much of my learning time. The games are called Neverball and Neverputt. Go download them and play them. Download the code as well and be amazed at the code is as small as it is.
But for this post, I am going to talk about this fascinating digital simulation software called DigSim that was written in the Java programming language way back in 1996. It won awards.
I have held onto that DigSim code for more than a decade with ideas of learning its secrets. It finally popped up as the most recent thing in my queue. Yesterday, I recompiled the code and ran it on my Toshiba Satellite that runs Ubuntu Linux and it worked!! This is pretty exciting considering that the code is 17 years old. Yes. In 3 more years, it will be the 20 year old code that still works. To increase the learning, I am going to reimplement the application in some other language, possible Visual C# to serve my work related goal of becoming a Visual C# expert. Or possibly into Qt for Linux / Windows as I have also been trying to learning Qt. This will force me to learn every thing about DigSim. The requirements. The constraints. Refactoring. Code reuse. Idea reuse.
Why DigSim? Back in college, I used this proprietary software called B2Logic to draw digital schematics and I was always wondered what kind of under the hood coding was required to make the software work. Plus, DigSim is small enough to be digested by the mind of one individual in a reasonable amount of time.
Below are more photos of DigSim:
Saturday, February 5, 2011
Video Game Kind of A Day
Hello Everyone. It is Saturday and very cold outside. Thus, I thought that I would make my first post on this new blog.
If you are a computer programmer, this is a perfect day to spend with your computer. Specifically, if you have Linux (Ubuntu 10.10) as your operating system, then you can find outstanding video games to download AND you get access to the Open Source computer code to learn from.
What does that Open Source thing mean? That means, the creators of the game provide for free the computer programs that it took to write and install the game. Thus, I download the code and try to compile it and then install it. "Compile" is when you type a command (or click a button) that performs the task of changing the code from something meant for humans to read ... to something that computer processor chips are meant to read. Computers like to read 0's and 1's. How the 0's and 1's are arranged is what tells the processor what to do.
In this post, I am including photos and a bit of code to show just a tiny part of what goes into these things. Computer programs are NEVER easy to write. They take a lot of planning and hours toiling at the keyboard. First you have to come up with the game ideas (what it supposed to do) and then you have to code it up (how it is going to do it.) Then there are the bugs that you have to find and correct. Hopefully, if a programmer is smart as a whip with the planning and coding, then the bugs are few in number.
As for me, I don't have TONS of free time as ... well a person needs to LIVE. And living should be more than just computer programming.
So, whatever I learn or create can't be too insanely complex and time consuming. So, with the code for these games, I am just reading them enough to know how to get started on my own game. When I create my own game, it also will not be able to be insanely complex or time consuming. However, the side effects of this learning are that I learn more about planning and programming ... which makes me more knowledgeable in my career. And it is fun.
This first bit of computer graphics is not really a game. It is a demo of the capabilities of the Java programming language. The entire demo is something that one person could code up in a couple of months. However, the demo has little sub-demos that could be coded up and run in one day. I am only showing the graphics and not the code.
This second one ... GlTron. This game is a drug. A big team of programmers, artists, sound effects persons and musicians created this one for what looks like a period of 2 years. It is gorgeous to play and the music is amazing. It has this capability where any person can insert their own video game music into the game. This game makes the heart beat faster. I am including screenshots and just a bit of the code.
This third one ... Neverball. I was so happy to find this one because it is a clone of my favorite video game ... the original Super Monkey Ball. It is visually stunning and the music is gorgeously rich. And I have the code for it now. Mwahahaha!!! This one also took 1 year or 2 to make. And ... when you compile it, it SAYS that you can include the option of Bluetooth so that a Wii controller can be used for your laptop. How crazy is that?? I am just including the graphics.
If you are a computer programmer, this is a perfect day to spend with your computer. Specifically, if you have Linux (Ubuntu 10.10) as your operating system, then you can find outstanding video games to download AND you get access to the Open Source computer code to learn from.
What does that Open Source thing mean? That means, the creators of the game provide for free the computer programs that it took to write and install the game. Thus, I download the code and try to compile it and then install it. "Compile" is when you type a command (or click a button) that performs the task of changing the code from something meant for humans to read ... to something that computer processor chips are meant to read. Computers like to read 0's and 1's. How the 0's and 1's are arranged is what tells the processor what to do.
In this post, I am including photos and a bit of code to show just a tiny part of what goes into these things. Computer programs are NEVER easy to write. They take a lot of planning and hours toiling at the keyboard. First you have to come up with the game ideas (what it supposed to do) and then you have to code it up (how it is going to do it.) Then there are the bugs that you have to find and correct. Hopefully, if a programmer is smart as a whip with the planning and coding, then the bugs are few in number.
As for me, I don't have TONS of free time as ... well a person needs to LIVE. And living should be more than just computer programming.
So, whatever I learn or create can't be too insanely complex and time consuming. So, with the code for these games, I am just reading them enough to know how to get started on my own game. When I create my own game, it also will not be able to be insanely complex or time consuming. However, the side effects of this learning are that I learn more about planning and programming ... which makes me more knowledgeable in my career. And it is fun.
This first bit of computer graphics is not really a game. It is a demo of the capabilities of the Java programming language. The entire demo is something that one person could code up in a couple of months. However, the demo has little sub-demos that could be coded up and run in one day. I am only showing the graphics and not the code.
This second one ... GlTron. This game is a drug. A big team of programmers, artists, sound effects persons and musicians created this one for what looks like a period of 2 years. It is gorgeous to play and the music is amazing. It has this capability where any person can insert their own video game music into the game. This game makes the heart beat faster. I am including screenshots and just a bit of the code.
This third one ... Neverball. I was so happy to find this one because it is a clone of my favorite video game ... the original Super Monkey Ball. It is visually stunning and the music is gorgeously rich. And I have the code for it now. Mwahahaha!!! This one also took 1 year or 2 to make. And ... when you compile it, it SAYS that you can include the option of Bluetooth so that a Wii controller can be used for your laptop. How crazy is that?? I am just including the graphics.
Subscribe to:
Posts (Atom)











