The decision to stop developing with Java was likely best for long term usefulness but it was immensely painful on the immediate schedule. As you might have guessed, I have not been doing any development on my game in the past few months. That is not to say I haven't been programming, just not high level programming.
The new project I've picked up and have slowly started putting hours into is using the Freescale Kwikstik to act as an odometer for my bike trainer. I am hoping that by using the onboard IR diode and receiver I can detect a piece of black electrical tape spinning around the inertial mass. In my mind I should be able to pull this off quite simply and then once I'm counting revolutions the project can really take off, USB data uploads, speed profiles, etc.
If I do get data up to the PC it would be in the realm of my fiancé Jackie to decide how to layout and display information on the screen, I imagine I'd write the interface though I'd be hacking my way through it. That slice of software remains the missing piece between our skill sets. I know that we both talk about wanting to learn it, we would be quite a team if we could meet in the middle. Me from the drivers up, and her from the screen down.
Currently I have the LCD screen driver, and the IR diode on, my immediate plan is to get the IR receiver working. I've discovered how difficult it is to work with embedded systems without the aid of meters and scopes. If I get serious about this hobby I should look into getting some tools.
A log of my efforts to refresh my control theory while writing an iPhone game.
Wednesday, June 1, 2011
Thursday, February 24, 2011
Competitive Analysis
I recently purchased Commander: Conquest of the Americas, through Steam, as it looked like it fit into the genre I'm hoping to enter. My intentions were to evaluate this game and hopefully incorporate the best aspects of it.
Let me begin by saying that this game was not well reviewed. It wasn't poorly reviewed, just deemed mediocre. After my first couple hours in it I can see why. It lacks the intuitive simplicity that Sid Meier's games are famous for. Though that is a hard standard to compare against. The team at Firaxis always amaze me with their balance of simplicity and strategy.
Commander seems to be a trading simulation at its heart and in that respect I compare it to the Patrician III. In fact, I would say that it is a step closer to my intended game than Patrician is. You found colonies, bring colonists over from the Old World, and compete with fellow European Nations. The focus though is on developing the colonies production trees, and setting up automatic trade routes that maximize profits.
I haven't played through a whole game yet so my summary may be premature, but my first impression take aways from this game are as follows:
GOOD
Let me begin by saying that this game was not well reviewed. It wasn't poorly reviewed, just deemed mediocre. After my first couple hours in it I can see why. It lacks the intuitive simplicity that Sid Meier's games are famous for. Though that is a hard standard to compare against. The team at Firaxis always amaze me with their balance of simplicity and strategy.
Commander seems to be a trading simulation at its heart and in that respect I compare it to the Patrician III. In fact, I would say that it is a step closer to my intended game than Patrician is. You found colonies, bring colonists over from the Old World, and compete with fellow European Nations. The focus though is on developing the colonies production trees, and setting up automatic trade routes that maximize profits.
I haven't played through a whole game yet so my summary may be premature, but my first impression take aways from this game are as follows:
GOOD
- Resources distributed around map, semi-realistically
- Not based on a grid, ships can move around in any direction similar to Pirates!
- Resource development, you can improve colonies to turn local sugar cane, into sugar, and then rum
- Ships can easily form squadrons and fleets to make protection and resource pooling simpler
- Four advisers that give suggestions and missions to complete
- Very pretty to look at
- Steam achievement system
- No exploration, the whole map is known from the start
- No randomization, you always play the map of the Caribbean
- Too many resources and colony improvements
- You must keep the advisers happy or the game will end
- UI is bad
- No homeport screen, colony screen hard to access and provides little information
- No good statistics or summary screens, information is hard to find
- Tutorials are just videos with someone speaking about what they are doing
- No end game, the goal is to amass a fortune
Sunday, February 13, 2011
Was Java the right choice?
As I started to expand from a single ship navigating a 7x7 map to any number of ships navigating a nxm map I started to add more and more Java classes. While this in and of itself isn't so scary, the thought occurred to me that in order to eventually do the port to the iPhone, all of these java commands and classes will disappear, leaving me with gaping holes all over my program.
The past couple months of working in Java has given me a better feel for the strengths and weaknesses of this language. It is strong because of the documentation and huge community. It also has implemented a lot of functionality that is simple to import and use but therein lies my discomfort. Java is meant to be a big black box. You write code to make one black box work with another and I don't like that.
The decision I have to make now is do I continue to use these boxes, or do I transition to C++ and leave java behind. That is the way I'm leaning. I might start a parallel project to see how long it takes me to recreate the functionality I have now but without all the black boxes as my foundation.
The past couple months of working in Java has given me a better feel for the strengths and weaknesses of this language. It is strong because of the documentation and huge community. It also has implemented a lot of functionality that is simple to import and use but therein lies my discomfort. Java is meant to be a big black box. You write code to make one black box work with another and I don't like that.
The decision I have to make now is do I continue to use these boxes, or do I transition to C++ and leave java behind. That is the way I'm leaning. I might start a parallel project to see how long it takes me to recreate the functionality I have now but without all the black boxes as my foundation.
Tuesday, February 8, 2011
Approaching 0.1
Since my last post I've made good progress. I found a better ship image, drew an ocean tile that looks better than straight dark blue, and I can move the ship around discretely by squares. Currently the ship can move around a 7x7 grid. When he hits one of the poles he can't go any further, and when he goes off the end of the screen, he appears on the other side.
To get to where I hoped to be at 0.1 I need to implement the following:
To get to where I hoped to be at 0.1 I need to implement the following:
- Expand the map to a size greater than what I can display in a 7x7 window
- Keep the screen centred on the ship unless he approaches a pole
- Add greyed out unexplored squares that are revealed when the ship is next to them
Wednesday, January 26, 2011
Ship ahoy!
In light of yesterday's realization that I need to spend less time paralyzed by indecision over how to structure my code I went home last night with one goal in mind. "I will draw a ship on the ocean, dammit". I was fairly close already, having adapted a lot of the window opening and image loading from the Space Invaders tutorial. I found a ship image online and focused on displaying it.
It took me a little more than an hour during which my fiancee correctly identified that I was paying less than full attention to any attempts at conversation. (Sorry!) But before I went to bed I did indeed prevail.
The following is a screenshot of a ship on the ocean-ish.
Tuesday, January 25, 2011
One small step...
Found another great tutorial. Rather than copying it verbatim I'm using it as an example. It is a recreation of space invaders and can be found here. They do some interesting things with resource management and I've learned about learned a fair bit about loading images into Java.
Also, I found an interesting article about game loops and screen refreshing. That article is here. The original exploration had very little animation, and a very blocky refresh rate. It will be simple enough to recreate, and not much harder to smooth out.
As with most ventures I find I keep hesitating during startup. I keep falling back to doing more research into Java game programming instead of moving forward with my best guess. I need to remind myself there is no cost associated with failure and I can always go back and optimize later.
Currently I'm opening up a window, but not putting anything on the screen.
Also, I found an interesting article about game loops and screen refreshing. That article is here. The original exploration had very little animation, and a very blocky refresh rate. It will be simple enough to recreate, and not much harder to smooth out.
As with most ventures I find I keep hesitating during startup. I keep falling back to doing more research into Java game programming instead of moving forward with my best guess. I need to remind myself there is no cost associated with failure and I can always go back and optimize later.
Currently I'm opening up a window, but not putting anything on the screen.
Wednesday, January 19, 2011
Taking off the training wheels
This past week I have worked my way though the online Java tutorial and reached a point of diminishing returns reading through Java in a nutshell. The further into Java I get, the more I've come to second guess my decision. The embedded programmer in me is appalled by the JVM which is a total black box. Talking to other engineers in the office it sounds like most software development is just taking a collection of black boxes and stitching them together. I plan on continuing with Java for the time being, mostly as a learning exercise. I think that I will likely want to restructure the project at some point and the lessons learned before then will be valuable. Besides, half of the challenge was to learn object oriented programming, and I should make an honest attempt before I return to the safety of C. Hardened software developers are probably shaking their heads at that.
In the upcoming week I look forward to getting my teeth into the real project, not just a tutorial example. I installed the original exploration game to have it for a reference. It is impressive that software exists to get a DOS based game to run on a 64bit Windows 7 platform. I tip my hat to the people behind the DOSBOX project.
This is a screenshot from the original game 'Exploration'. It shows the map, currently the ship is in port, the castle looking building, and it's info is listed off to the bottom left. A screenshot roughly looking like this is what I hope build 0.2 will look like though with much rougher looking graphics for the shape of the land and sea.
In the upcoming week I look forward to getting my teeth into the real project, not just a tutorial example. I installed the original exploration game to have it for a reference. It is impressive that software exists to get a DOS based game to run on a 64bit Windows 7 platform. I tip my hat to the people behind the DOSBOX project.
This is a screenshot from the original game 'Exploration'. It shows the map, currently the ship is in port, the castle looking building, and it's info is listed off to the bottom left. A screenshot roughly looking like this is what I hope build 0.2 will look like though with much rougher looking graphics for the shape of the land and sea.
Subscribe to:
Posts (Atom)

