October 27, 2012

Combatics Evolution 0.1.6

After a few little minor headaches, I am proud to announce the first version of Combatics Evolution with multiplayer!

So far, multiplayer only works on the desktop clients for the map editor. There are chat channels and a server lobby. You can simply host the server by downloading the exe (for windows) or the jar file (for all) and running the application. There is a minor bug with the console at the moment, you will have to close the window to kill the server as I need to figure out a better way to support console commands.

Combatics Evolution v0.1.6 Release Notes:


  • Game progress is currently not cross-release compatible, previous profiles will not be able to function with the latest version.
    • Android Version will have errors if you attempt to use an old version.
    • Note: Long term profiles are in the pipeline.
  • Multiplayer Update
    • You can connect directly to servers, to launch a server simply run the server application.
    • Server Lobby:
      • View other open games
      • Create a new map editor session
    • Editor Lobby:
      • View map to be played
      • Chat while in editor lobby
      • Only host can start game
    • Multiplayer Editor:
      • Instantly view changes made by other users.
      • Save map locally
      • Exit from session
        • Note: In-game chat in a future release.
    • Currently, linked to google accounts and uses your name to identify you. Meaning, if you want to play with random people consider waiting until I implement nicknames.
  • There are tons of other changes under the covers.
  • I am aware of android performance currently being horrible, I will need to do a few optimizations soon, but I will be mostly focusing on networking right now.

The latest version can be found here:
Desktop Version
(Direct Link: Desktop Version)

Android Version

(Direct Link:Android Version)
Note: APK Download, you must have unknown sources enabled in the application menu.

Server EXE
(Direct Link: Server EXE)

Server JAR
(Direct Link: Server JAR)

Enjoy!

Goals for next update (0.1.7):


- Initial online battle support (with in-game chat)

Progress on 0.1.6 (Part 2)

I haven't posted an update for a couple days, and I wasn't really sure if I should even post this update today since I will probably be releasing the next version (0.1.6) tomorrow. Android will not have any networking at this time because I still need to hook up some authentication code for it.

Currently, for the multiplayer server it will be pretty barebones and only support one command: quit. However, for multiplayer support I currently have a server lobby, with joinable game lobbies and chat channels. Creating/Joining/Leaving/Destroying channels is currently automated but the idea of creating custom channels is quite easy to accommodate in the future. The editor appears to be working well over the network and the amount of changes to the editor itself was only a few lines of code. I guess I do know what I am doing after all lol. Obviously, the server code is quite a bit more extensive and as far as testing goes, 4 clients are working flawlessly on a local network.

Of course, some real world testing would be nice... but I have to settle with some local testing for now until I can deploy the server. Currently, I have a configuration file where you can set the port to run the server. More settings will be added later as needed and things like server name and such would be handy. The error handling on the client is very minimal so I totally expect a number of crashes related to networking in the first couple versions. Overall, it appears to be decently stable, but I'll take that with a grain of salt.

The next task will be online-enabled custom maps... Which is going to probably be a lot more work to get everything working reasonably over a network compared to the editor. Most of the server code can be easily reused from the editor, but battles have significantly more going on. Basically, I'm very uncertain about it only taking me a week to complete it on top of everything else I have going on. Naturally, I won't release anything partially working so if I can't complete it on time I will delay it by another week.

October 21, 2012

Combatics Evolution 0.1.6 Postponed

Last night I came to the conclusion an update would be rather pointless right now. The only real changes on the user side would be a chat system which would require the user to setup a simple server for hosting it. I have made a significant number of changes under the covers, but it has no real affect on the user. Needless to say, since things are busy right now and I don't really see a point in releasing a new version I am delaying the release by a week.

The goal is to finish off multiplayer-based map editing by next week. It was what I had originally hoped I could have done this week, but I was delayed by a number of things.

Goals for 0.1.6 (One week from today)

  • Multiplayer-based map editor
  • Deployable server

Goals for 0.1.7 (Two weeks from today)

  • Multiplayer-based custom maps

October 18, 2012

Progress on 0.1.6

It has been a busy week and I've had very little time to work on Combatics Evolution. It isn't totally unexpected as being a student full time does mean I have course work and midterms to worry about. I have been able to squeeze in a few new changes but am currently learning a handy little framework for networking.

My goal for 0.1.6 was to get the editor up and running over a network, but I think that goal is a bit ambitious considering I have a bunch of UI to create in order to make the whole workflow rather seamless. Currently, I have a deployable server but I'll probably have to package it up nicely for users to be able to easily create and run. It is built in a very flexible manner which will allow me to easily add/remove server commands and is written in Java since that allows the least amount of work to integrate with the client.

My goal is going to simply be creating a server lobby for the upcoming version and support text-based chat. I'll probably have to spend a bit of time kicking the android side to make the user actually able to log in. I hook into google accounts for the desktop side, so the android side isn't going to be a ton of work *crosses fingers*. Currently, the name will be the full name on your google account, but I will need to setup a database system to store 'nicknames' for people to use as their alias. I don't want to intentionally expose personal identifiable information to other clients.

Anyways, I'll probably cook up a few abilities while I twiddle my fingers on how exactly I'm going to hook up the editor over the network. So maybe a few new abilities will make it into the update.

October 14, 2012

Combatics Evolution v0.1.5

This update has been sitting around my computer for the last day or so, I have been busy with some assignments so getting this out was delayed a little bit. 


Combatics Evolution v0.1.5 Release Notes:

  • Game progress is currently not cross-release compatible, previous profiles will not be able to function with the latest version.
    • Note: Long term profiles are in the pipeline.
  • Battlemap Update
    • The campaign battle area has two maps which are randomly selected per battle. 
    • Starting locations are now displayed as white tiles (might make it more noticeable in the future)
    • Unit movement is now 3D based, and you will need to play around a bit to get a feel for how movement works.
    • Old maps are not compatible with this version, I have fix this for future releases to be compatible.

  • There are lots of other changes under the covers.

The latest version can be found here:
Desktop Version
(Direct Link: Desktop Version)

Android Version

(Direct Link:Android Version)
Note: APK Download, you must have unknown sources enabled in the application menu.

Enjoy!

Goals for next update (0.1.6):


- Migrate more abilities...

- Initial online play support (with deployable LAN server)

October 13, 2012

What is next?

Now that the map editor and combat systems are integrated, the only thing remaining with it is getting all the abilities implemented. Something I could probably do in a day of work, but it is not exactly exciting to do. I have built up a number of things to make the task trivial, but I just see it as 'content' and not really a feature.

This leaves me wondering what feature I should take on next, the things I have remaining are the following items:

  • World Map - A node-based map with regional views, cities and areas to explore.
  • Missions - A miniature world, sort of a series of battles up to a boss area.
  • Challenges - A single battle which challenges the player's ability with various aspects of combat.
  • Online Play - Setup a deployable server for LANs where players can create maps on the editor, play custom maps together, and chat. (Expand to Co-op based play later)
  • Enhanced Combat
    • Add map interactions
    • Fire/lava and water effects
    • Design pathfinding around new factors of the map
    • Add custom map events
  • Campaign Development
    • Start creating the storyline and foundation for the single-player game
    • Cinematic content
    • Quests
    • Character dialog
    • Developing the world map
  • Polish Interface
    • Reskin the UI to match the game
    • Add music to menus/world/battle
    • Add basic sounds during menu
    • Add options menu
  • Polish Gameplay
    • Add sounds and animations to characters
    • Add more character models
    • Create actual textures for the blocks and such.
    • Add more AI and different types for difficulties
    • Include threat and concern into combat model for smarter AI
    • Balancing (done after most other systems are in place)
  • Monster/Content
    • Add different/new enemies with special abilities
    • Give units attribute coefficients and scaling
    • Boss units and special battles
  • Polish Maps
    • Lighting Effects - Add lights and shadows to map to add a level of depth and quality to maps
    • Particle Effects - Add splash to water, smoke to flames, molten splash to lava.
  • Polish Items
    • Add names to items
    • Clean up item tooltip
    • Show current equip when swapping items
    • Perform comparison between items when equipping
  • Polish Characters
    • Improve Job Rank system
      • Provide attribute bonus for increasing ranks
      • Multi-tier abilities?
And I could probably spend more time thinking about other things here and there I want to work on. It is kind of odd, most of this is tweaking already existing parts of the game. Where to go next for 0.1.6+ is lurking in the background as I am wondering where this project will take me.

October 10, 2012

Progress on 0.1.5

Well, here is the semi-weekly update on Combatics Evolution.

Currently, everything is going fairly smoothly, with a few minor headaches. I am currently focusing on recreating the abilities to work with the new map system. The transition is very straightforward with a few minor changes to some components; however, I am also cleaning up some code and trying to make everything easy to work with for my own sake. In the process of cleaning things up I have caused myself a few headaches by first building things more complicated than what I need and secondly, rewriting things which don't really need it.

The combination of the two issues above has delayed myself by a number of hours, but its always a good reminder of why sticking to "keep it simple stupid" is the best decision in 99% of situations.

Anyways, below is a nice picture of what to expect in 0.1.5:

Combat post-0.1.5

This is an example of going from nothing to a custom created map combat in about 2 minutes. It is remarkably easy to do. While the number of things you can customize is pretty minimal, there is a ton of room for expansion. I like to give the player the ability to do what they want by making their own content. Developers typically need to create an editor for the game, so why not just build it into the game and let the user control the content if they want to? (Halo forge, Warcraft3, SC2, etc...)

As far as 0.1.5 is concerned, everything is done except for abilities. Which is something I have a habit of neglecting, but I'm making it an easier task so I don't feel as lazy about it.

October 6, 2012

Combatics Evolution v0.1.4


The map editor is essentially complete; the interface can be improved at a later time. I'm releasing today because it is thanksgiving here in Canada and I want to get out what I have before I completely break the ability system by migrating it over to the new maps.

Combatics Evolution v0.1.4 Release Notes:

  • Game progress is currently not cross-release compatible, previous profiles will not be able to function with the latest version.
    • Note: Long term profiles are in the pipeline.
  • New Editor Features
    • Create, Load, Save and Delete maps
      • You can configure the size of the map in all 3 dimensions with sizes between 6 and 24 blocks. Keep it smaller on android devices.
    • Change viewing angle
      • Normal - Isometric
      • High - Orthogonal downwards view
      • Low - Orthogonal sideways view
    • Change map blocks
      • Add blocks
      • Change blocks
      • Remove blocks (note: the base layer cannot be altered)
    • Change starting locations
      • Currently editor only supports setting two teams, more teams simply involves additional UI work.
      • Add/Remove locations, and automatically resolves conflicts
      • To view the locations you will need to be in Violet or Orange mode and you can select which team to view with the adjacent button.
  • There are a number of other changes under the covers.

The latest version can be found here:
Desktop Version
(Direct Link: Desktop Version)

Android Version
(Direct Link:Android Version)
Note: APK Download, you must have unknown sources enabled in the application menu.

Enjoy!

Goals for next update (0.1.5):

- Migrate combat system over to new map architecture, this will completely break all existing abilities.
- Be able to play and load custom maps as well as a few built-in default maps in the campaign.

October 5, 2012

Combatics Evolution Movement Rules

I figure I should provide an update on the changes coming to the combat system. Since I'll be working on a 'block' like map system there are now a few new rules I need to consider for movement. Currently, the rules are fixed for all units, but I am considering the possibility of them becoming more dynamic in the future.

Below is an image showing the current ways a unit can move from a block to an adjacent block. Imagine the character is on top of the light blue block. They are able to move to any green block immediately beside them. This assumes there isn't a block in the way, as characters occupy two blocks above the ground.

Movement System post-0.1.4
I am about to begin the transition from the old map system to the new map system for combat. I have a few more things to tweak in order for this to happen, and I now have an excuse to create abilities using the 'builder pattern' (Software design terminology). All my current ability implementations will need to be updated to the new system, my current AI shouldn't require any changes (this is why modular code is awesome). If I don't complete the upgrade before my next update, then the old combat system will still be there (again, modular code rocks).

If you haven't gotten the picture yet, make sure your code is modular... my game is a perfect example of why you want to keep your code very flexible. Also, copy and paste is a sin when it comes to programming. I could probably rant for a few pages about why I feel sorry for companies who hire new graduates. Particularly the ones which have very little experience with good programming practices... something that seems to be completely overlooked in undergraduate degrees. Honestly, why universities give degrees in computer science and software engineering without making students take a course (or two) on 'clean code' baffles my mind.


October 4, 2012

Progress on 0.1.4

I have been fairly busy lately with other things happening; however, I would like to post the following image to show the current progress on the map editor:
Map Editor pre-0.1.4
I still need to implement loading and saving maps, but I don't suspect it to be an overly difficult task. A few things I should probably mention about this editor:

  • The red X in the top left will close the editor and bring you back to the menu.
  • The controls on the left are for normal navigation, but you can drag around the map as well.
  • I plan to also add a zoom button to the navigation (and to the battle screen as well)
  • The 4 main controls at the bottom are:
    • Blue - Select Mode - You can click, select and drag around the map but will not make edits to the map
    • Green - Add Mode - You can place blocks on the map by clicking on the map, you can drag around but you will place blocks as you click so I don't recommend.
    • Yellow - Edit Mode - You can change the type of block when clicking on it.
    • Red - Delete Mode - You can remove blocks on the map by clicking on them.
  • I am currently playing with the editor and I feel that working completely in isometric isn't ideal, so I will probably add more viewing angles so you can get a better idea of what you are working on.
  • There is also a block selection panel on the bottom right side (yes, it isn't in the above picture). This allows you to change what blocks will be placed, and you can cycle through all available blocks.
  • Top right text:
    • FPS - Current frame rate in the editor, android seems to pull off 20-35 fps on my low-end tablet. So I feel this will work for other devices of similar or better specs.
    • T - Number of triangles being rendered, more usually means lower FPS, I will try to reduce this number with more optimizations for android, but not sure how much lower I can push it.
    • X/Y/Z is the current location of the selected block.
Well, that should be a handful of information. Needless to say, things are going well and shaping up nicely. I'm aware the blocks aren't very good looking, I haven't spent any serious time trying to make them look good, something I can polish up in the future.

Anyways, back to work for me!