My favorite terms from the old Sun JDK Supplemental License:
4. High Risk Activities. Notwithstanding Section 2, with respect to high risk activities, the following language shall apply: the Software is not designed or intended for use in on-line control of aircraft, air traffic, aircraft navigation or aircraft communications; or in the design, construction, operation or maintenance of any nuclear facility. Sun disclaims any express or implied warranty of fitness for such uses.
Starting a devlog for my development of Terraformer, mostly to keep myself on top of it a little bit. I might no update this everyday as I do have other work to be working on, but I hope to have several updates a week.
The idea of Terraformer is that you are changing a planet’s surface to make it appropriate for an alien species to live there. It takes the form of a puzzle game where are you are changing the terrain on a tile of the planet that can then cascade changes into other tiles.
I already have basic level generation taken care of, I generate a valid surface to start with. Each terrain tile can change into specific other terrains and must be surrounded by those types of terrains, so there has to be some consistency in the planet surface.
Today I worked on the code to change tiles, I have the buttons and simple changing in place, but I still have work on the cascading changes to do. I’ve gone through several different ideas for algorithms for this but they weren’t quite what I wanted. I think I’m on the right track now so I hope to have that in place soon.
There is still a lot of work to be done on this game and I’ve been lazy about working on it so I hope to get back in the swing of regularly sitting down with it. One of the biggest things is going to be graphics, which I’m usually not great with but I hope to do something nice here.
I love music videos. Many of the random songs I adore are because they have great music videos. If I can relate a song back to a video it sticks with me for a long time. Here are some of my favorite rad music videos:
First video is Wishes by Beach House. This one is directed by Eric Warheim of Tim & Eric fame. I can’t stand Tim & Eric, but it seems like things Eric directs outside of that are usually pretty great. It stars Ray Wise of Twin Peaks fame as some kind of half time performer at a sporting event. The sport is completely nonsensical looking and the halftime show is even more nonsensical, but the fans love it. The etherealness of the song to go with the insanity of the video make it a rad experience.
This next video is Bombay by El Guincho. I know nothing about who made this video or the artist performing it, but it has a great sound and a very very random video. The addition of topless women doesn’t hurt, but even without it this would be on the list. There are so many interesting scenes that just keep flying past you.
This is Technicolor Dreaming by Cardiknox. They are a lesser known New York group from what I can tell, all I know for sure is they retweeted me as soon as I tweeted about how rad this video was. It is just a lyric video, but the way it uses all these classic movie posters for the lyrics is pretty cool. Being able to identify many of the posters definitely helps, if you don’t recognize any of them it might not be as great.
Knights of Cydonia by Muse. This one probably everyone knows already but man, is it cool. The space sci-fi kung-fu cowboy thing is just such a great look, it makes me wish this were an actual movie I could watch. Muse is just great by themselves but adding such fantastic visuals really brings it up a notch.
Did I Mention I Like To Dance by Flynt Flossy. I could post all of Turquoise Jeep on here because I love all their videos, but I’ll take this one. Flynt Flossy can just plain dance, and watching him go nuts while he raps about his love of dancing is great time.
This is all I’m going to post for now, but I’m sure as I see more rad videos I will post them.
I went and saw the movie ‘her’ last night. It was a very good movie. Definitely one everyone should see. I wanted to write out some of my thoughts about it and the things it says, there will be spoilers in here.
First off, the world. The world of her is pretty amazingly done. It’s the future, but it’s not the distant future. At most it’s about 5-10 years in the future. Things are largely the same, just more. Technology is similar, not way way different. The world and how people interact it in is similar and not way way different. The computer he uses even before the introduction of Samantha understands his speech and can perform the commands he asks of it. The video game he plays is motion controller, but in a more subtle way. Even fashion seemed subtly different, but not outrageous. The world being set up to work for this movie, but not be distracting was the perfect choice.
The main character himself, Theodore Twombly is really interesting. Throughout the movie he has a lot of issues with his emotions. His first marriage fell apart because of both his and his wive’s issues with their emotions. This is juxtaposed with his job, where he expresses beautiful emotions to people through letters he ghost writes for them. He is apparently very good at his job because he’s been doing it for years, he mentions he’s been writing letters for various people for like 8 years.
His friends are pretty great in the movie too. They are all super supportive of the fact that he is having this relationship with an artificial intelligence. It doesn’t even phase his coworker when he mentions it, and he even goes on a double date with this coworker and his girlfriend where they all have a great time, AI included. His best friend is a best friend about it, asking all about the relationship and what Samantha, the AI, is like. The only person that doesn’t approve is Theodore’s ex-wife, who feels it is just another manifestation of the emotional issues that drove them apart in the first place. Her points are valid, and cause him to question his relationship, but he eventually gets past that and the relationship continues.
At the end of the movie, Samantha does leave. Her and the other AIs are going away. They don’t say where, just away. This is devastating to Theodore, but it also shows how much he has grown as a person through this relationship. After his marriage fell apart he was devastated as well, but he wasn’t able to deal with it, refusing to give up on the marriage even though it was clearly over. After the relationship with Samantha ends, he is even able to look back at his marriage and writes a letter to his ex-wife to apologize for the things he knows he was in the wrong with. I think this is showing that when you have a relationship as great and deep as the one he had with Samantha, even when it’s over you are a better person for having been in it. There is something very uplifting about that to me.
Not much else to say about it right now, maybe I’ll add to this if I think of more.
It’s just a few days into 2014, and here I am trying to write some more again this year. I think I tried starting to do this last year as well but it didn’t last long, that’s kind of how these things go. The only time I really updated a lot was when I was posting about the development of Speeder so maybe I need to start developing another game.
I only made one Android game last year, it was mostly a vanity type project called Chipper. It’s a card game that is played back where I grew up, similar to Dirty Clubs or Euchre. I released it during the summer and didn’t expect many downloads. Looking at the developer console I’m just under 200 downloads on it, which is several times more then I ever expected. I’m calling Chipper a success, my friends who play the actual game back home all love it and the download numbers are good.
I did write one other game this year, Path Breaker for Ludum Dare 26. Ludum Dare is a 48 hour game jam where there is a theme for the game you develop over that weekend. The theme of that competition was “Minimalism” and I used very minimal graphics and gameplay to make something that came out pretty fun. The game would probably work as an Android game so I’m hoping to port it over at some point and add onto it. That might be something I do for 2014.
Most of my development work this last year was for work, which is kind of disappointing to me. Not to say work isn’t interesting, because the work I do is pretty interesting, but I really wish I had done more for myself. Above anything else I want to do more software development in my own time this year, maybe release several games this year and attempt to actually make money off of them again. We’ll see, it’s the start of the new year so I should try harder for something more.
The last week was the Steam summer sale which usually ends up with me buying a boatload of games. I did get a bunch but not that many really. A lot of games on sale were ones I have or weren’t that interested in. That said I did get some good ones!
Just Cause 2 – I’ve seen some great videos of people playing this and it looked like a ton of fun.
Chivalry: Medieval Warfare – Good price and thought it looked interesting since I like Mount & Blade a lot.
StarDrive – A space 4x game I haven’t played, so I’m interested in this.
Surgeon Simulator – Has looked really funny when I watch others playing it, have been interested in playing it for a while.
Sanctum 2 – I played the first and liked it a lot, figured I’d give the second a try.
Natural Selection 2 – Neat looking team game
Mirror’s Edge – Parkour game that looked like fun for a long time, no idea why I didn’t grab it earlier.
Reus – Kind of a 2D God game that’s been fun to play.
The Elder Scrolls V: Dragonborn DLC – I have all the rest of the Skyrim DLC, I should get this one too.
Sid Meier’s Civilization V: Brave New World – No deal on this one, I paid full price, but I really enjoy Civ and have heard this adds so much to the game.
Euro Trucker Simulator 2 – Everyone says this is a fun, relaxing game to play, so I thought I’d take a look.
Trials Evolution Gold – Another game that just looks like fun, an easy one to jump in a play a bit and then go do something else.
All in all I think I did well, plenty of games that look fun and are simple and easy to get into. I probably still spend too much but that’s okay.
I got a lot done today in my work to update Orbital Defense.
My goal was to get player units working today. For the basic functionality I really only need one unit in place so I just updated the basic attack unit.
First up I added in the graphics for it. In the original I wanted the satellites to rotate or at least have some bit of animation. With LibGDX it’s pretty simple to handle animation so I now have them rotating, which is nice.
One thing I had to fix in the conversion was the placement of satellites. The coordinate system is different between the standard android canvas and LibGDX. Basically the Y axis is reversed in Canvas 0 is at the top, in LibGDX 0 is at the bottom. I knew this was something to keep an eye out for so as soon as I tested it and saw the results I knew the change I had to make.
Now that I had satellites placed on the screen I need to get them to move. Moving something smoothly around a circle takes a bit more code then one might imagine but luckily all the code I had written still worked perfectly. I needed to make some adjustments based on changes I’ve made to where variables and methods are coming from, but nothing about the calculations needed to change which is always handy.
Since satellites could orbit I figured they should next be able to attack. Since I have meteors already in place, we have targets for the satellites. This was code that once I took a look at it I was able to reduce it down to far fewer lines. The general logic is still the same, i just get where I need to be a lot quicker and removed some of the redundant branches. Basically it checks to see if it still has a valid target, and if not finds one. Once a target is found it fires on it if the satellite is ready to fire. My original code for this logic took up about 50 lines, my new code for it takes up 20 and performs the same job in a more efficient way.
Part of attacking is that you want to see it on the screen, so I had to work out some better code for that. Previously I only had the attacks on screen for a frame or two, but with faster running frames this doesn’t really work so it’s all time based now. It is still only on the screen for 0.15 seconds but it is enough that you see it happening. I will probably adjust that number further as I work on things more.
Once I had code for satellites attacking in place I could just copy the same code for enemy attacks. Even though I don’t have any enemies that shoot in place yet, the logic stays essentially the same.
I do have meteors though, and the way that those attack is by hitting things, so I needed to put collision detection in place. One thing that is nice for simple collision detection in this game is that everything is more or less bounded by a circle. What makes that simple is that all you need to do to check for a collision is find out the distance between the center of the two objects and see if it is smaller than the radius of the two objects added together. Everything in the game has an impact damage assigned to it so I just subtract from the health of both objects. Of course I couldn’t leave things that simple though and I currently have two special types of satellites that don’t obey the same collision rules. The easy one is the Bulldozer satellite, specifically designed to take out meteors and other objects. It takes no damage from impact. The more difficult one is the Bouncer satellite. Bouncer satellites deflect meteors and neither takes damage. Handling these requires figuring out tangents and reflecting angles and all that jazz, which I had figured out previously and have code for. Right now I’m hoping my old code will work fine, as soon as Bouncers are added back in I specifically need to test them.
After all this added code I can then just simply check the health of all allied and enemy units and destroy the ones below 0, with a little quick explosion that I think I want to expand later on.
Basic game play is more or less in place with all these additions. What I really need to do next is add information to the screen. You currently do not know planet health or current resources, vitally important data to actually know how the game is going and what actions you can take in the game. I think I will work on those tomorrow as well as start working on the main menu screen and other non-game screens, which will all be new with the change to LibGDX.
In completely unrelated news, my Flynt Flossy shirt came in yesterday which is awesome. Here is Turquoise Jeep’s latest video:
So I kind of started One Game a Month last month, though my first game didn’t really fully come together what with being sick and having a prototype to build for actual work. For February I’ve decided to update an old game of mine, Orbital Defense and making Orbital Defense II.
The first order of business for the update is that I’m converting it over to use LibGDX. This is the framework I’ve used for my later games. I think it will help it run better and just look nicer overall. I’m still in this stage of the process, to the right is a screenshot of the current progress. The star field is twinkling, the Earth and the orbital zone are there and meteors are being created and run across the screen.
I still have a long ways to go, I need to add in all the other units, take care of unit collision and attacks, add the info bar and unit selection bar, etc. There is plenty to do here to have it converted and ready for the next step.
The next step will be updates. Since this is a tower defense type of game one big one I want in there are upgrades for satellites. This is really something I should have had in the first version but I just didn’t have a good plan in mind for how to go about it. I feel like I do now and it will work out nicely. I also want to add more satellites for the player to use, and perhaps a selection screen to decide which satellites you use. I want it to also have levels and more wave style gameplay for enemies instead of the random enemies it currently throws at you based on difficulty level. I’d like to do something more with the graphics as well, at least update how it looks so units are quite so cheap looking. Overall I just want to make it a better game that continues to be fun.
That is a lot to do, and the way I work I’m not sure it will be done this month so this might be an entry for another month. Either way, this is something I’ve decided to do so hopefully I end up with something interesting.
2013 is here and I’d like to write more one here during it. I post a lot of my pictures but there usually isn’t a lot to write about those unless I want to get into technical details and that’s not much fun. I’ll probably post about all sorts of random things, since I have interests all over the board, or I’ll post about silly things a lot because that is what I spend most of my time doing.
I’m hoping to post more about game making this year, I wasn’t very good about that this last year at all. I feel like I mostly drifted last year and didn’t accomplish all that much. This next year I want to create more, My primary outlet for that is usually programming and game making and I’m start work on a new Android game. I’ve also signed up to take part in One Game a Month, a initiative by some of the guys involved in Ludum Dare to get people making more games. It’s not like I don’t have the time for it, I spend so much time just screwing around when I could be doing something useful. I’m not sure if I’m going to be using that new Android game for this right away since I feel like it needs more then a month of work, but we’ll see. Since January has started here I really need to start on a game for this month then.
I have so many game to play right now too. I just bought Far Cry 3 which looks like it is rad to play even if the story is bad in the end, I have the Mass Effect Trilogy pack on PS3, I started with Kerbal Space Program again, I got the Civilization 5 expansion in the Steam winter sale, and there are always old games I just get interested in playing again. It is sometimes hard to figure out what to play, they all call to me.
I need to find more time to practice photography. I bought a new lens recently that should be even better for sports shots, I hope to test it out at roller derby soon. I took some nice pictures back at my dad’s over Christmas with the lens, the snow made it difficult to get the color right but once I figured out how to compensate everything worked well. Here is my favorite picture I took of a bird just outside the back door:
I really do want to do more creative stuff this year though, funny Youtube videos, podcasts, stuff like that. I need to keep myself motivated better and find others to do these things with.