Friday, April 18, 2014

in-game Toolbars

The main bar (top) in horizontal orientation and
a nested bar below it also in horizontal displaying
file options: new, save, load, exit, and quit, respectively.
Hey guys.  I've got a short update today.  I spent some time implementing a toolbar interface for the in-game HUD.  Toolbars are able to be oriented either horizontally or vertically.  For now toolbars can only contain buttons.  Buttons can be text, image, or both and they can also have a tooltip attached to them.  The toolbars function similar to a menuing system, a button can either be the parent to another toolbar or it can have a function bound to it directly.  This lets us do nested toolbars within toolbars within toolbars, a bit redundant but I'm hopeful it will let us do some neat things later on.

I also spent a considerable amount of time refactoring the game's build tools system into a much cleaner state.  I'm now able to create new or modify existing tools much easier which should speed up their development.  In the past this was a fairly tedious process because the tooling was coupled very tightly with the game class and state manager.  In it's place I've developed a tool template class with appropriate input callbacks which is much easier to use, and in addition also executes much faster and is easier to debug.

Wednesday, April 16, 2014

I'm bad at this blogging thing

Wow I went a week between blog posts, I'm sorry about that.  Hopefully that will not happen again but, no promises :).  I can promise that I've still been hard at work here on the project.  It's taking a little bit more shape but more importantly so is the codebase.  In the last week I've incorporated a lot of new capability into the code,

Tuesday, April 8, 2014

Path finding

Hey guys, I'm here with another blog update.  Today I want to show you the progress I've made on the implementation of pathfinding algorithms that the simulated people in the game world will utilize.

If you're familiar with building and sim games you know that a huge part of the gameplay revolves around creating the world for your sims to live inside of.  Obviously a large part of living in a world is knowing how to navigate inside of it.  Pathfinding is the mathematical solution to having our sims be able to navigate through the world you build.  Without it they would run into walls, nobody would ever figure out how to leave their rooms, let alone graduate and this would make the game pretty unfun.

Friday, April 4, 2014

Tile Engine Part Deux

The tile engine will be an integral facet of the project so it's important that I make it as robust as
possible.  In today's update I will show off the progress that has been made to it and the engine itself.  Yesterday I showed off painting tiles with solid colors, today I'm going to show you how I've added sprite sheets (collections of tile images), layering, game saving, and game loading.

Thursday, April 3, 2014

A tile engine is born

If you're familiar with a bit of the project I'm working on you'll know that a 2D tile engine is a major part of the game.  A major part of the game will involve creating building foundations, the floor plans of the interiors, and placing objects on top of those floor plans.  To make doing so fun we're going to need a strong suite of tools available to the user to manipulate the world with.

Since my last update I've begun to construct the tile engine and tile objects for the game and the beginning of the tool suite that will be available for building in game play.  Let's take a look at the visible progress made so far:

Wednesday, April 2, 2014

Driving windowing with data

I've decided to utilize XML to manage a lot of the data in the project.  XML is a great format that's been around for ages.  It's got some nice advantages to it, one being that it's fairly easily readable by an actual human being.  This is a big plus in two areas, one being it can speed up development considerably which is important when I'm trying to prototype out ideas.  Additionally it means that most of the data will be exposed in a very friendly manner which means modding will definitely be possible from a very early state, although it may be frustrating at first, as tools and code mature the process will become smoother (I promise!).

I've decided to use the open source project called RapidXML for my xml reading and writing needs.  It's a very proven product and used on several projects that are deployed in the real world.  Utilizing this code has allowed me to start pushing data into xml very rapidly (^_^)!

Yesterday I showed off a bit of the windowing.  Today I will be showing you how I am now utilizing the XML data to drive the system.


Tuesday, April 1, 2014

Starting a project is brutally fun -- First post

Yesterday was an exciting day, getting back into it with all of the game ideas racing through my head it was almost hard to concentrate at first.  It's actually been a long time since I buckled down and wrote some code. Once the initial jitters wore off though it felt like it was back to business as usual.

The first day involved setting up some basics.  I'm going to work with SDL (Simple DirectMedia Layer) as a base.  If you don't know what that means it's basically a wrapper around Direct3D/OpenGL which allows me to do some very basic functions without having to write very low level code.  The SDL Library can compile on Windows, Linux, and MacOS which is very nice if and when it comes time to do some porting. I'm still very much in the planning and prototyping phase of the engine development so decisions about possibly utilizing plug-ins for things like collision/search algorithms will be made in the next few days & weeks.

On to what I've actually done...