Tuesday, August 18, 2015

DevBlog - Neutral Cards initialized, tranition mode between standard view and movement view, various other tweaks

Hi all!

So I took some time off of work for my Birthday that's coming up, I prefer to have some alone time/me time at least once a year, to try and hammer out small projects that I've been wanting to do, spend some quality time with family, and work on hobbies. Gamedev is one of my favorite hobbies I'm enjoying right now, really getting up to speed with organizing and making things happen within Unity.

A lot of my previous development experience has been generally focused on business productivity and such, but a lot of my C# is coming in handy for development of this game, so far. I've read several books on the platform, and read through a lot of online materials, but never really pushed myself into a project, as I have with this one. I'm really excited where it's taking us, with this game.


So there's a lot of things I can update on, but I'd rather focus on the main points and leave most of the rest for a future update, or just as a teaser to see once the game makes it to a testing point ;)

Anyways, I worked quite a bit, over the weekend, on trying to get the deck's structures finalized in order to get them ready to be used within gameplay. I'm very happy to announce that all the Neutral Cards (Upgrades, traps) have been created and are ready to be manipulated within the game (some logic is needed for their actions to be active, but that will come later!).

The next big thing I wanted to work on, is to start moving towards ship movements, so this week, that's been my focus. Ships are now automatically deselect when another ship is selected. This took a little more work than I originally anticipated, but through communicating between objects, this is now possible. Speaking of which, I ironed out a huge question in my mind, adding objects to the scene from non-monobehaviour objects. This has been a big question in my mind when watching a lot of 'how-tos' that pretty much use this class type exclusively. Unfortunately, MonoBehaviours don't fit my need for every class, so I had to come up with solutions for that. Thankfully, I was able to create  a method on a controller class that will allow me to create these objects as I need to, and they are added to the scene as I wanted them to be... sweet!


So, we have ship selection, creation all down, next up is movement mode. Movement mode is something that we move to, to make it easier for a player to move a ship around the battlefield. This allows a player to easily see the location of enemy ships (if the fog of war is gone), and be able to easily select a position on the board. Below is a video of the movement update:


I have also built the movement mode to start slowly and gain momentum, then slow down as it's reaching it's peak position, and the same effect as you come down. In the future, on the GUI, we will most likely have a toggle button that will also allow the user to switch between modes, that will update as the player decides which view he/she would like to see. There will also be movements avaialable around the field, to allow the user to rotate around, and see different perspectives.

Now that we have movement mode enabled, the next on my list is to couple those positions that are being initialized into actual movement space objects, translating between the current selected ship and the target position, transitioning between idle, into thrust mode, and moving the ship in the direction it needs to head to hover over the target position.

Lots to do, but making lots of progress!

Keep moving forward!

Wednesday, August 12, 2015

DevBlog - What I've setup so far

Starting on a development project always is a tough challenge to tackle, specifically, "Where do i start?!?" Well, the more that you develop software, the more you realize, there is a trick to this question: Anywhere.

Seriously. Just start. Now, by start I don't mean "open up a window and start writing code"... I mean, come up with a plan of action, start making decisions, and start working on small aspects of the game! For starters, we wanted to take the product currently in draft form, and convert it into a live aspect form, within Unity. This means, let's make it look similar to the drafts, and have it running natively within Unity (sorry, you can't take a JPG, import it to the canvas of Unity and say PRESTO! It's done! )

The first portion of work I did for the game was, take the Photoshop UI , slice it up, and bring it into Unity to natively live on the canvas (and resize naturally). This took some time, but I got a majority working quite quickly.



 From specs already planned out, I went ahead and created some update methods to update different parts of the UI dynamically, once that was done, I wrote a method to automatically decrease the time, to show it's ability to handle turns within the system. On the left here, you can also see one of the cards (here named "Matthew") that's loaded dynamically from a digital card object. Other areas on the interface are clickable (the enemy fleet dropdown seen above is toggleable, and it automatically hidden on startup)

Once the general structure of the UI was complete, I also worked on dynamic inserting and positioning of gameplay spots. This was an interesting one for me to figure out, but with some math play, I was able to determine the position needed for the start of each row, the number of spots needed per row, and the spacing needed for it to look proper on the interface... that work can be seen below:



So, now the playfield is dynamically created! What next? well, for promo and for purposes of seeing how the field would look with ships on, it's time we bring in our first models! (thanks Matthew)

I spent some time, making sure they were positioned properly, and showed up properly on the interface. I also took the time to add some thrusters to each, a little movement, and prefabbed them for easy deployment.




  This was my first time really working dynamically with object within Unity (to this extent), I wrote a ship class that all inherit, put in box-collider's to enable selection by clicking, and even enabled elements to start appearing (created particle systems for selection visual), as well as, a right click option to allow for displaying each ship's HUD. (Below you see the ship in the center, selected, the ship on the left also selected, but with the HUD visible)




This HUD (as displayed above), in the future, will have card pictures contained within each box, that will contain vessels, as deployed to each ship (Flottila) Each card will be able to be clicked, and it will open the card related to that vessel, to enable the user to see more info of each.

For other purposes, I added the ability to rotate the field around the center of the map, as well as, to float the camera to the top, to be able to see the battlefield easier (for movement commands)... these are all accessible through code, not just standard animations, so it allows more flexibility in the future as more functions are added.

So now comes a hurdle... how to manage the general decks. For the last week or so, I've been looking/planning/tackling this one. I started first with a very simplistic system of passing card values to a constructor, and then presto, card was made. Unfortunately this was quite ugly and I would prefer to be a little smarter about creating 'entities' per-say, of each card type. I ended up going the route of, creating enums for each card's short description, and then passing that short description to a method for creation. This allows for a card to be added to a deck easily, and to be able to create dynamic decks that are more self-documenting within the near future. I intend also to add additional features to the decks as they are expanded, but for now, a lot of the initial features are in hand.

In the future, I will most likely add the ability to download certain cards/decks/etc, from a remote database, to allow us to deploy new cards and such remotely, but for now, all the decks and cards will be in-game static resources.

So, for now, I'm working on bringing in all the currently available Human and Neutral deck members, getting them organized, created with all their attribute values. I also had a huge desire to do my first couple blog posts out-of-the-way to give you guys something to chew on in between updates (woo I can mark off a checkbox! I love checkboxes ;) ). By the end of the week, it's my desire to have, when the game starts, 7 randomly selected card initialized and displayed dynamically on the user interface. There's a lot of small 'data-entry' style stuff that needs to happen, to make that happen, but I'm confident that I should be able to finalize a majority of the methods needed to finalize these decks, and card distribution, to make it all come together.

Until next time,

Haddy out!

DevBlog - About Me, the new developer

Hello there! My name's Haddy, I've taken on the challenge of doing the development for this game. This article delves into more of, who I am, what excites me, and what got me where I am today...

First, to introduce myself, I am a developer by trade, work with all kinds of different development scenarios, and have loved gaming since I was a kid. I'm 32, so my childhood gaming started with an Atari, then moved to NES, SNES and Nintendo 64. I've always been fascinated with games, and have always had an interest in how they all go together.

Fast-forward to junior year in high school. I took my first computer class, which also was a programming class... our family was not wealthy (even though I lived in a very wealthy part of California at the time), and my parents got divorced just before I entered high school (my Mom worked full time as a store clerk to support us), so access to a computer was very much not an option. Once I started programming, I realized I had a knack for the stuff, and have been programming 'something' ever since.

For years I worked as a systems analyst and network engineer, but was completely bored with the topic... felt underwhelmed, and work felt monotonous. Meanwhile, I also developed sites, programs and systems for friends and acquaintances, and I ended up developing some things for the school district I worked with. From there, my development career started, I got promoted to a Web Developer, and worked on many different projects around our district. A mentor suggested I return to school, and get my degree in Software Development, which I did, and graduated with honors while working full time! After California had been having budget issues for a while, I decided to put my resume out there, and look for anther job, developing full time. I got a bite, and I'm still with that company today.

I love what I do, love developing software, and seeing people use it. I love coming up with solutions to problems, and resolving things with mathematical structures. I have quite a bit of student related debt still, so I always try to find small jobs here and there, to help pay them down a little (going to be a while! lol) I have worked with several small indie studios up until now, unfortunately none of them worked out.

I have had a strong desire to find 'something' to work on with a team of individuals, and that's where FleetCalamity comes in. Matthew, the creator of all this, put out his blog and Twitter post in look for a developer. To be honest, I've been asked to be a part of many many different teams the last 6 months, but never felt the 'fit' per-say. One reason was, a lot of the opportunities don't pay (and while trying to pay off debt, it's tough to make a commitment). A lot of these small studios don't pay (looking to push to funding), so I've learned a few things along the way:
  1.  Only join a project you feel you could be passionate about
  2. Make sure you get along well with other members of the team, from first meet (digital meetups included)
  3. Don't ever over-commit (if you tell them you can work on a project full-time, and you don't, you're not helping)
  4. Be honest (many small indiedev teams know you need to have a life, and understand you cannot commit to something that doesn't pay full time!)
  5. Make sure it fits (don't just do something, to well, just do something... love what you do!)
 I am a huge Star Wars / Star Trek / Battlestar Galactica fan, so when Matthew and I discussed FleetCalamity, I got excited instantly. Even though the position is non-payed at this point, the subject is fitting for what I enjoy, the idea is solid, and I feel that we can push to release this game and make some money for all of us involved (creating a game that is fun for the customer, at the center of the equation, and will hopefully help me pay off my student debt at the same time! :) ). Designing a game from the ground up is definitely a task, but I'm really excited to be a part of the team, from the ground up, and really excited to see where this project takes us!

Future DevBlogs will have a lot less about me, and a lot more about what I'm working on... maybe even some pretty pictures and/or videos!!! (bait)

Well that's it about me for now... make sure you follow us on Twitter at @HalfHeartGames, you can also follow me personally at @Haddicus!


Sunday, August 2, 2015

A very progressive week!

It's been a busy week or so for Fleet Calamity/ Half Heart Games!

Let's start with the biggest news, shall we? Well Recently we got a new programmer by the nickname 'Haddy'. He's an awesome hard working individual and we couldn't be happier with him on board!

If you get a chance say hi to him, I'm sure he'd appreciate the love.

So what has Haddy done thus far? Well take a gander!

https://www.youtube.com/watch?v=GoMvmkqrTCQ&feature=youtu.be

That video shows the GUI and initial grid set up. Notice the ships bobbing and the GUI bobbing with it.

https://www.youtube.com/watch?v=sNBY_CjX3C8&feature=youtu.be

This second video shows the camera rotating around the battle field and the additional GUI for that feature. The player will be able to look around the battle field to see it from different angle and reach any hex that might be blocked from another angle.

He is still hard at work on getting the GUI all set up and being able to select, move and basically operate your Flotilla. More on all that next time.


As for the art department we've been busy too with creating Card art and Models for the vessel units.

First up is the card art. This is what the back of the cards will look like. In addition, the star and circles are Fleet Calamity's new logo.


And finally here are some screen shots of the new models. None of them are textured yet, but that will come later.


















 
These models, and others, will form the Machine pre constructed deck. Some of the models seen before will also be part of this deck, such as the Assembly Drone, Giver and Scanner.

Well it's time we get back to work and get some more stuff to show you all.

In the mean time let me know what your favorite model is from the Machine Pre con deck and what you think of the GUI thus far.

Take care and don't forget to follow us
Facebook @ https://www.facebook.com/FleetCalamity?ref=bookmarks
Twitter @HalfHeartGames 
and also, of course, follow this blog to get updated on our updates.