Saturday, February 28, 2015

More to Life than you see at first glance.

I've been playing Fantasy Life for the 3DS (Nintendo's great little mobile gaming platform for those that have been living under a rock) and I absolutely am addicted to the game. I play for anywhere from 10 minutes to a few hours every day or every other day. Finding the time to play isn't too hard. I usually play on man's favorite throne, or just before bed, or sometimes just while hanging out in the living room with my family. Anyway, the game is great.

I've beaten the main story of the game and there is still so much more to do. The replay-ability is insane. I'll not write any spoilers here for anyone who may be playing the game at this time. I will say that there are side-quests that you will get early on that you cannot complete until after you beat the game, and even later. I'm a pretty high level, and have done a lot of grinding, and there are still over 500 monsters that I cannot even put a dent into with my best weaponry.

I highly recommend that you give the game a try if you have a 3DS, and if not, then go get one and get Fantasy Life, because it's a great game with a lot to do, and a lot to enjoy. Everything from the graphics to the music, the story, the gameplay mechanics, the balancing. It's all there. I'm thoroughly impressed by this title, and there are very few games I've played which are able to come close to the fun factor which can be found here.

In other news, I realized that my version of Unity was not up to date compared to my wife's version; so I downloaded the latest build last night before bed. Time to go install it and get back to Flip16.

Friday, February 27, 2015

Unity is...

...interesting to say the least. Yeah.

So my wife and I both installed Unity and we are working on figuring things out for Flip16 simultaneously, and it was a fun time finding alternative ways to solve the same problem. Neither of us are familiar with the software, so we're both stumbling around and googling things to find answers.

It's going to be awhile before Flip16 is ready for prime time, but at least we get to work on this together, so that's a plus. :D

It's really cold 2 degrees F right now. And really late...so I'm going to sleep.

Thursday, February 26, 2015

I need a larger hard drive...

Well, I managed to reach 99.2% usage of my hard drive; which means I cannot create anything else (it won't let me; and the system is running sluggish now)

So, I am going through and deleting all the old stuff that I no longer need or use, and moving files I want to keep to an external drive. So far I've cleared up 30 GB from my home folder.

Sadly my drive is only 250 GB ( I've had some bad luck with hard drives lately. I've gone through three larger drives in under a year! ) --- if anyone reading this wants to donate some cash for a good cause ... I really could use a new hard drive!

Flippin

PyQt GUI prototype of Flip16
I've worked on the Flip16 prototype more today, and I've nailed the mechanics down, and have implemented the game timer and multiple levels. Again this is still the prototype, and we are going ahead with trying Unity for the actual game. Just installed Unity and we will see how it goes.

I've learned a lot about PyQt with this prototype, and I think I will end up making a bit of a PyQt game prototyping template for building other small game prototypes with in the future. I might even clean it up and release it to the public under MIT license or Creative Commons or something. Only time will tell.

Wednesday, February 25, 2015

Another small game is in the works

It's no secret that several projects tend to be worked on concurrently here at Bang Bang Attack Studios, and for many indies out there. Some may say that it's bad to shift focus from project to project. I think that it's somewhat necessary to think about different things, so as not to get burnt out on one thing in particular.

That said, we've got another little game project which features an old puzzle mechanic of tile-flipping. Think the old hand-held Tiger Electronics Lights Out game from the 90's.

PyQt GUI prototype of Flip16
We are in the prototyping stage at this time, and last night I built a working prototype of one of the primary mechanics using Python and PyQT for GUI. Not going to use that tech for the final game, but for my needs of prototyping things, it worked out well. In less than 150 lines of code, and 2 to 3 hours I had my prototype up and running and playable. Most of that time was spent reading the Qt docs and googling for Python snippets to do what I wanted since I'm out of practice with Python lately.


Our target platforms will be android devices, and PC desktop. This brings the question of what tech to use for the game. We are considering using Unity this time around. It's undecided at this point though. The actual game assets and more mechanics prototyping will come first.

Losing Track of Time

I wanted to maintain a steady minimum of one update a day. Midnight got here way too quickly today for me, so this post is a little late.

I have been working with a new small start-up to get their online presence created, and to help them to create their brand. Still lots more to do, but that is where my day went. Well, aside from being a husband and father...

In other news, I figured out how to record my desktop audio while recording my screencast/live streaming. However a side effect is that the video now has very noticeable artifacts. So until I can figure out how to resolve that little problem, I will be producing silent videos. If you know how to solve the problem, please do tell.

I'm using Libav's avconv command-line tool for recording my videos on Ubuntu linux. I am open to any suggestions other than use a different OS. :D

Monday, February 23, 2015

Pitch Development #1 - Creating the Project

The first in a series of videos showing the development of my little experiment android game project "Pitch" has been recorded and published today.

Watch the video on youtube:


In this video I create the initial libgdx project, test that it works on desktop, and commit the project to a local git repository.

There is no audio, as I have not yet figured out how to capture audio for my screencast. If you have any questions, just let me know.

Sunday, February 22, 2015

libgdx and Universal Tween Engine

Today I have decided that I will be using the Universal Tween Engine for my Pitch game project's tweening needs.

What is the Universal Tween Engine?
The Universal Tween Engine enables the interpolation of every attribute from any object in any Java project (being Swing, SWT, OpenGL or even Console-based). Implement the TweenAccessor interface, register it to the engine, and animate anything you want!
It's actually pretty damn cool, and easy to use. At first I didn't think it would suit the simplicity of my project, and would make it bloated and be confusing to work with. I was dead wrong.

Using the Universal Tween Engine is quite simple. I have put together a very short demonstration of using the Universal Tween Engine to tween the position and opacity (alpha) of a libgdx Sprite. I used gdx-setup.jar to generate my project and I copied the sources of the Universal Tween Engine from it's directory which I cloned using mercurial into my project's code/src folder. See below.


The only source file which you really need to worry about is the MyGdxGame.java file which I have put up on github as a gist for reference.


I am not going to go into detail explaining things here, but the docs for the Universal Tween Engine are more than adequate to tell you what is what.



Experiment (Pitch) States

Here is a simple diagram showing the different 'states' that the Pitch game can be in at any one time. The notation I am using here has primary and secondary states shown. Second states have the primary state and two colons then the secondary state name.

Pitch Game States
The game should start in the Splash state, then progress to the Title state, then to the Play state, which then has 3 secondary states which the game will transition through, before returning back to the Title state.

The game will eventually become more complex once we add Credits, and Social Integration states, but this will suffice for now.

It's not all development

I spent most of today playing games. Not really in the right state of mind to work on anything, so I just relaxed and had some fun. I blame the ridiculous weather we are having for my lack of interest. I have been putting together some plans for my next streaming session though. I will let you all know when I'm going to stream again.

Friday, February 20, 2015

Oops!

So I hadn't thought things through last night. I said I was going to stream today, but it's my son's birthday, so streaming is going to be delayed a few more days. I will make an announcement here, facebook, twitter and google+ feeds.

Thursday, February 19, 2015

No streaming today

I had planned to do another streaming session today, but I had unexpected company visit and so there isn't time to do the stream tonight. I will try to get things ready for tomorrow.

Testing libgdx projects on the desktop while using Android Studio

If you have tried to use libgdx with Android Studio and found that you are unable to run the Desktop build, I would like to inform you that it now indeed possible, just takes a few more steps than running the android build.

First in Android-Studio click on the Gradle tasks bar at the right side of the screen. Then click the little arrow on the left of your gradle project name under the All tasks category, scroll all the way down to the :desktop section and click on the right arrow on the left of :desktop, and again scroll down and find the run task and double-click on the run task.

This will attempt to run your desktop project. Provided you have no errors, you should see your libgdx game window appear just like it used to with the older style Eclipse based projects.

Now, once you have done this, you can click on the Run menu item in the main window menu bar and choose Edit Configurations.

You should now have a new Run/Debug Configuration under the Gradle section called yourprojectname:desktop [run]. You may use this new configuration to run your desktop project without needing to find the run task in the long list of tasks.

I hope that this little mini tutorial has helped you work more efficiently with libgdx and Android Studio. It certainly was a wonderful thing to find today for me, as I have been cursing out Android Studio for it's lack of desktop application support ever since I downloaded it.

I used to curse about libgdx adopting Gradle for it's projects, but now, I certainly agree that it was a good move, and that it makes things a lot simpler. It all needs better documentation though. Things like this should be available right in the setup docs, without having to dig into the software blindly and happen across the answer.

And now for something completely different!

It's always a good thing to remember that life exists away from the computer. Today I spent some quality time with my wife and son making some crafts. I chose to create a wire sculpture out of a very affordable material...

Just plain ole uncoated metal paper clips from Walmart. I used around 30 of them...I honestly lost count. This is my first complex humanoid sculpture, and I'm rather proud of it. I might 'bulk up' the sculpture later with aluminum foil and/or clay, but for now, my fingers hurt from molding the stiff clip wiring.
"bo staff fighter"

Wednesday, February 18, 2015

Mmm Organization.

As an indie developer it is often useful to have a place to store your ideas, notes, task lists, etc... and a nice easy way to keep track of what you are working on, what you should be working on, and what you have already done. This my friends is called organization.

I personally have a desire to be more organized in all things that I do. I admit that I have sadly failed most of the time at keeping my personal development organized. This is hopefully going to change. I have decided to start using a kanban board to help manage things. I've found a great FREE web-based kanban board at kanbanflow.com and after less than 2 minutes I was able to start putting it to use as if I had been using the app my whole life.

First thing I did was edit the columns. The defaults are nice, but they don't serve my needs.

I have the following columns now.

  • Backburner
  • Ideas
  • Tasks
  • In-Progress
  • Done
This gives me a place to store my ideas when I think of them, stick things that I know I won't work on for a long time on the back burner (and tasks that I decide are not important anymore), tasks that I need to do, tasks that I am working on, and tasks that I have done. All in one easy to access and manipulate location.

There is a premium service available as well. I'm considering it if this proves to be a productivity booster for me. Just thought I would share this with you before I head off to bed.

Streaming #1

Alright, well I just wrapped up my first live streaming session. It didn't go as well as I had hoped, but maybe it will be better in the future.

For those that missed it, sorry, but I don't have it recorded. I just learned that I can have Twitch.TV archive the broadcast for 14 days (since I'm not a paid user - paid users get 60 days archive storage)

Anyway, a quick rundown on what I covered:

  • creating initial Gradle libgdx project using the gdx-setup.jar
  • importing build.gradle into Android Studio IDE
  • adding the classes to the project which I will flesh out as I go
  • starting the initial Game class code
  • creating the initial Splash Screen class code
  • testing the project on my android device (HTC Desire HD)
  • debugging NullPointerException from my attempt to load the wrong texture atlas format, then using the wrong data type to store my region data.
  • and finally wrapping up after successfully getting the result that I wanted on my device.

My system is pretty beefy; 8GB of DDR3 ram, 8 cores of 3.2Ghz AMD goodness, and 64-bit Ubuntu 14.04. But I swear between the broadcasting process and android studio, I thought my system was going to die of a heart attack!

I will be streaming more in the future, however I will likely stream in shorter segments to allow my computer to cool down between broadcasts.

Thank you to anyone who watched my first ever broadcast development!

Tuesday, February 17, 2015

Trying Twitch TV

So I've decided to give streaming a try. You can watch some live indie game dev if you're interested. http://www.twitch.tv/ubervestigium

Starting an experiment

Last night I ran across someone making a joke post with an image attached which was nothing more than a solid black rectangle. The comments (d)evolved into additional jokes about how it was really a new AAA game with all black textures and what was being shown was an in-game screenshot of it in action.

This got the wheels in my head spinning and I thought, well, why not make an actual game that was all black? And so, I am starting the development of a small game for android devices which features all black textures as an experiment to see how playable, and how many people play such a game.

Now, this may sound completely absurd I know, but I think it will be fun, and educational. So if you care to learn more. Stick around. I will be posting more about this experiment and it's development over the next few days/weeks that it takes to bring this game to market.

Hello

Hi! My name is Richard Marks, and I am the co-founder of Indie game developer Bang Bang Attack Studios. I've started this blog as a place to share development stories, tip, tricks, rants, and project devlogs with our audience. Welcome to our little place on the web. Enjoy your stay.