carlfoxmarten: (default)
In case I’ve never mentioned it, my cell phone is a 32GB Nexus 5 smartphone, running a pretty-much stock version of Android 4.4, especially since I’d bought it straight from Google.

Anyway, I discovered that it has a ‘screen-cast’ option, where you can wirelessly project the phone's screen to another monitor or TV, if they support that option.
Unfortunately, the screens I have access to do not, but that isn’t the only way to do it.

Fortunately, several companies sell devices or cables that plug into the phone’s USB port and provide either host-type USB ports or various other plugs, including an HDMI adapter, which I managed to buy for about fifteen bucks off Amazon.

Today I got to test it so I could show off OK Go's latest music video, I Won’t Let You Down.
Short answer: It works great!
Caveat: The speakers on the TV aren’t really that good, at least when compared to the stereo dad has.
(it would have taken more work to try getting it set up through that, so I just went with the easy option)

Anyway, I’m quite happy with how the phone and the associated accessories I’ve been buying have worked together.
I suspect I’ll be keeping this phone for a couple of years yet. =^.^=
carlfoxmarten: (podium)
Well, it's been a while since I used this journal to post about the status of my Android games, so it's probably about time now.

I have two of these on the go right now.
The first is called “Dig Site&rdqou; and is a connect-three matching game where you slide the lines of objects around instead of swapping them.
The second doesn't really have a name just yet, so the working title is “Electrical Connections’. In this one, you work against the computer, trying to connect two electrical bars to each other by putting smaller bars between posts, while the computer tries to block you after each of your moves.

Dig Site work has stalled due to the extremely high amount of graphical code that needs to get massaged to have things working well.
Currently, it's playable, automatically stores your game, has four levels of difficulty, and needs far better graphics than it has right now.

Electrical Connections is currently only a Java prototype, but has passable graphics (for a prototype) and will detect when the current game is over, who won, and will start a new one on the next mouse click.
Currently I'm somewhat stuck on the computer's AI algorithm.

The game has to choose the best place to put a blocking piece based on the grid as it stands after each move the player makes.
This is in no way a trivial operation, as I have to take into account both the best move the player can make as well as the best move the computer can make.
If the best plan of action the computer can make requires more moves to complete than the player's best plan of action, then the computer needs to block the player's next perceived move instead of its own best move.

Despite the fact that I was able to articulate the above, it still hasn't gelled in my head in such a way that I can put it in code.
I think I need more time in front of a whiteboard so I can closely examine what makes this algorithm tick and how it needs to work.

This is particularly important due to the fact that it's this algorithm that will make or break the entire game.
It won't matter if the graphics are awesome, the sound effects perfect, and the music (if any) fit together well.
If the algorithm is too hard or too easy, the game won't be much fun.
carlfoxmarten: (Default)
In much happier news, work on my Dig Site game is progressing very nicely.

It took me a day (only! Yes, this surprises me) to add support for checking to see if the board contains any valid moves.

I've delayed adding this before because I thought that it would be overly complicated, take too much time to run, and/or be nearly impossible.

As it turns out, the code is actually relatively simple (so far as concept goes, anyway), it doesn't take much time to run, and it was actually easier to write than I thought.
(most of the time was spent figuring out how it should be structured and what checks should be in place)

In addition, I've added support for some form of difficulty levels, which I'm managing by increasing the number of block types the higher the player's score gets.

This also means that I need more colours for block types.
Last time I tried to add more colours, colour was the only way to tell some blocks apart, and certain colours were difficult to tell apart.

I was thinking that it might work to overlay black outline versions of the tiles I'm thinking of using over top the coloured rounded square I have right now to give it a flavour of what I've been working towards.

Still not sure about it, but it would solve a couple of problems I have.
carlfoxmarten: (Default)
A Refreshing of Direction.

My Android game will be delayed a bit further, as I've been reminded that the best indicator of how successful a game will be is how much fun the designer has playing it.
(particularly, does the designer still play after it's been released?)

I've detailed how I hope to extend game-play in my Tumblr article, though I'll also comment on it here in case somebody wants to provide me some feedback.

My original design had the game awarding the player fragments of artifacts at random during play.
Once you had enough pieces to put one artifact together, you could sell it to the museum (or before, if you were desperate), then use the resulting money for "power-ups" and bonuses.
Some power-ups I've thought of so far include hammers (breaks a single block), bombs (destroys a radius of blocks), paint brushes (changes a block's type), and hint bonuses.

All of this is going to take a fair amount of time to code up, so my official release date has to get pushed back significantly.
(all the better to get a good product, you know)

Progress!

Feb. 11th, 2012 03:29 am
carlfoxmarten: (Default)
Today I showed my mentor my current progress on my Android game, and was quite encouraged by his response.

He is a proponent of the "release early, release often" methodology, as that acts as a bit of free advertising for developers and their software, and prepares the public for the upcoming complete release.

I was kind of surprised just how short the list of things he thought I should do before releasing the game was: Some additional feedback for failing to make a match, sound effects (to help with the feedback), and something to make the game fun.

The tricky part is the last one, but it could be as simple as a cool animation for the blocks getting removed.
Another option is for the score to be tracked in a global highscores list, which unfortunately needs a server on the internet to keep track of such things.

I'd like to add a cool animation for blocks removed after a match is made, but I'm not quite sure what to do.
Another game I've played breaks each block removed into four pieces and throws them around in a nice shower of pieces, while a version of Tetris I wrote a few years ago (and never released) has each block spin and shrink.

After I get this version of the Dig Site game up to proper speed, I'll need to get a credit card.
In this case, a disposable one will not work, as Google needs a full credit card so they can pay you.

I also just spent several hours adding what should have been an easy feature: Animating the line when it slides back after failing to make a match.
I suspect the reason it took so long was due to the number of mistakes I made previously in the development, such as using flags when I should have used state variables.

Anyway, development continues.
Plus, you can tell when you've reached an interesting point in the development of an application when you pass up playing games to work on the program...
carlfoxmarten: (Default)
I told you it ran on my tablet! =^.^=
(picture included)

It has a long way to go before it'll be ready, but at least it works!

The list of things that I have left to do on it feels a little long:
  • Add support for using the navigation buttons as well as touch.
  • Swap out the coloured squares for images.
  • Make it harder to erase the last-saved game.
  • Add options for level-of-difficulty before starting a new game.
  • Add a method for increasing the difficulty as play progresses.
  • (optional) Add sounds.
Maybe it just seems long...
carlfoxmarten: (Default)
Well, in a preliminary form, anyway.

It finally works on my Android tablet!

Not entirely sure what was wrong, but removing the code that loaded up a couple of images used for buttons made it work, somehow.
(could be my order of operations, not sure)

Next, I need to streamline my testing process, as I have to change things on one machine, copy it through another computer to put on an SD card, then put the SD card in my tablet, install the latest version on the tablet, then (finally!) test it out.

If it doesn't work, I have to launch another application that lets me see the debugging logs, then try to figure out what went wrong, and start the whole thing over again.
(not the best development chain, I know. However, I can't use my card reader on my desktop machine for some reason)

I also need to add back some form of score-keeping (so players know how well they're doing), as well as some form of levels, and state-saving, so you don't get a new game every time you leave the game for whatever reason.

But it works! Woot! =^.^=
carlfoxmarten: (Default)
I think the "weeeeeeee!" factor has died down by now, and I've started actually using my new tablet for real now.
Though I haven't done any real "work" with it, mostly playing games and browsing the web...

First, a couple of gripes.
Since this was such an inexpensive tablet, it uses a pressure-sensitive screen instead of capacitance, so it's not quite as accurate as it could be, but with the advantage of using almost anything I want for a stylus.
Also since it was so inexpensive, it's running a very old version of Android (1.5 versus the latest 3.2 or so that they're up to now), and as my development kit only goes back to 2.1, I can't write software for it that way.
(it's also underpowered, but I can live with that, for now)

As for games, I've found a couple that I find fun to play:
I've found a note-taking application called Note Everything that I've found easy to use.

The web browser I'm rather disappointed with, though.
I use browser tab a lot, and the built-in browser doesn't handle that very well.
So far, I haven't found a good replacement either.

All in all, a little disappointing, but still workable and quite usable.
carlfoxmarten: (Default)
So I've been playing around with my new Android tablet my parents gave me for my birthday, and have noticed several things so far:
  • It doesn't come with any note-taking applications out of the box.
  • Being a low-end device (it's made by a company called Pandigital and costs less than $100 for the 7" version), it does not have the Android Market installed.
    This is a major issue when I'm trying to find software to install, as it means I can't install anything that's only available through the Android Market site.
  • I'll need to buy a bigger SD card.
    Due to not having the proper YouTube viewer installed, I'm currently stuck with a YouTube downloader which downloads the videos to the SD card, which is only 512MB in size.
  • The "SlideME/SAM" software manager doesn't always work, though it is consistent in what doesn't work.
    (ie, it's not random. Certain applications simply can't be installed due to an error when checking system requirements. Unfortunately, some of those programs that won't work I really wanted to try...)
  • The built-in browser works quite well, and plays nicely with other installed browsers.
    (ie, if there are multiple browsers installed, you can make it ask which browser to open each link with)
  • On a similar note, the Dolphin Browser feels very crippled, or something. I have been unable to find the buttons to add and manage bookmarks. To make things even more annoying, most operations seem to be triggered by gestures, and I haven't been able to trigger any of them no matter how hard I try.
    Needless to say, I've removed that browser and switched back to the default one.
It's a little under-powered, but that's nothing new to me, as I'm used to being kind of light in that regard.

The wifi support is pretty good, which is a really good thing, as it doesn't have a network jack in it.
There's also a switch on top that allows me to turn the wireless card off when I don't need it.

On the whole, it's rather handy to have something really portable to browse the net with, though we'll see just how useful it is for testing my Android projects on...
carlfoxmarten: (Default)
I know, I know, I should be posting this to my Tumblr blog, but I thought I'd post it here first, as the comment locks are rather restrictive over there.

This past Friday, I'd showed what I currently have off to my mentor, an instructor at my university's closest campus, and got rather positive feedback on it.

He pointed out several very helpful things that I hadn't thought about, like putting the highscores page right in the main menu, some alternative suggestions for handling scoring, several very interesting "bonus/penalty" concepts, and recommended that I write a very simple story to help answer some questions players might have about gameplay, such as "Why am I doing this?", "Am I doing this legally?", and the like.

The story doesn't have to be anything very large, it could even fit on half a page.
Something like "You are an archaeologist at a dig site in [insert area here], looking for relics and artifacts to take back to the museum that hired you." may suffice, though I'll have to think about this for a bit first.


Posted via m.livejournal.com.

carlfoxmarten: (Default)
I had quite a productive day yesterday.

I'd been having problems figuring out the best way to recognize the matching blocks, as it's something I've never come across before.

Something that helped me was realizing that I may need some of that information while drawing, so caching the information was a good idea.
This means that I have two functions that work together to remove matching sets of blocks.

The first one checks for all matches and stores its results in temporary arrays while we wait for the logic to decide if it wants to start removing them.
It assigns each grid cell a "set number" that all adjacent cells that match will have, as well as storing the number of cells each set has in another array.

That data is then scanned to see if any set has at least three cells in it.
If so, we have matches that should get removed as soon as possible.

The removal function is fairly trivial as well, though it took a while to get right.
It scans through the whole grid, checking to see if each cell is supposed to get removed.
Each cell that needs to be removed gets blanked out with null values as markers so we don't accidentally miss any removals.
We then drop each existing cell that is above an empty space down as far as it can go, and fill the remaining in with new cells.

It's working rather well, too.

However, I think there's a bug in there somewhere that causes it to remove more cells than necessary.
Sometimes when I'm sliding a line around, I know for certain that I'll only create a certain number of matches, but it removes far more than that.

If I have you on Facebook or Google+, I've already posted screen shots so you can see them.
I probably won't be posting much of this on DA or FA, as I'll be releasing this under my real name, but I might post a couple of screen shots when the game is finally released for advertising purposes.
carlfoxmarten: (Default)
As I've been writing my code, I've also been having a relatively close look at the developer help section of the Android Market site.

I have to say I'm a little confused.

Apparently, you need to have a Google Checkout account, which is hooked up to either a credit card or a bank account, and it won't let me hook it up to a bank account, and I don't have a credit card right now.
(I've bought about half a dozen pre-paid credit cards, but I'm quite sure those don't count for this)

After trying to read some of the help pages, my brain almost hurts.

Apparently, they have to handle each country separately as far as payment goes (which, I suppose, is to be expected), but the drop-down menu for countries on the Google Checkout Seller page only lists the US and UK, leaving out the vast majority of the list they have elsewhere.

I hope this will become clear when I actually get started, but there's no way to know for sure until I get there.
carlfoxmarten: (Default)
Of course, that could be its real name as well, but I haven't got there yet.

I've gotta watch what I'm doing a little more closely, so I don't introduce new bugs too easily.

One of my screens has to listen for events that get triggered when the screen gets created, changed or destroyed, and I've put a bunch of setup code in the onCreate() method, so it made sense to put most of the setup code in there.
The problem came in when I put the code that added the screen to the list of things called for those events into the method that was called by them, essentially creating a catch-22 situation.
(code that would set up the calling of the method in the method that was supposed to be called by the system. Very annoying)

Next up I need to decide how I'm going to lay out the stuff on the play screen so I know where things are supposed to go.
(I have to do different things for wide screens versus tall screens, for instance. And square screens are another matter entirely)

I'll be posting updates here roughly once a week, or more often if I finish something important.
carlfoxmarten: (Default)
But I sure do enjoy hanging out on campus.

I had some very nice chats with a few of the instructors I've gotten to know during my years at the university, one of which was very informative, useful, and could go a long way towards either getting a job in the computer games industry or making a small name and associated income for myself as an independent game developer.

Last time I had a chat like this with this instructor, I apparently didn't quite get what he'd said, but this time I think I have it.

I'm going to try writing a "connect-three" game for Android in four to six weeks and release it for sale on Google's official Android Marketplace for the low, low price of ninety-nine cents.

A "connect-three" game is a category of casual game where you have a grid of objects and you have to match three or more of the same 'type' of object to remove them.
For example, Bejeweled and Chuzzle are two examples of connect-three games.

So far I've managed to install the Android developer kit and have started working on a very early prototype, mostly learning how things actually work.

Once I've figured out how things are supposed to go together, I'll work on adding the basics of gameplay for fine-tuning things.
After the game logic is relatively complete, I'll work on the actual graphics to be used.

Right now I'm thinking about using an archaeological theme for the game, matching artifacts like-for-like to obtain points.
(I'd been originally thinking about cutting the artifacts up into tiles and make you put them back together in the grid, but I don't think that's going to be very fun just yet)

Yes, this means that my other projects are more-or-less on hold right now, but I don't think they'll suffer that much for it.

Watch this space for updates and poke me if you think I've been away too long.

Profile

carlfoxmarten: (Default)
Carl Foxmarten

August 2017

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
272829 3031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 07:01 am
Powered by Dreamwidth Studios