Forgotten Tale Forgotten Tale

Dev Environment

(Permalink)

I've spent a good bit of time this week getting my development environment setup. It's not to the final shape that I would like, but it is in pretty good working order. I'm now able to actively code every day so that's a win.

The Machine

The development machine I'm working on is a 2012 Mac Mini with a 2.5Ghz Quad core i5, 16GB of RAM, a 1TB 7200 RPM hard drive, and outputs to two Acer 1080p monitors.

I've put this machine together over the last year, and for a machine that cost me less than $1000 all included it works pretty well.

The only downside is the Intel HD 4000 integrated graphics. Thankfully I'm just doing 2D graphics right now so that downside has little effect. Sadly it limits what other games I can play on the machine, but it's a work machine so that's a good thing, right?

The Software

For now I'm compiling and executing using Visual Studio 2013 Community Edition on Windows 7 in VWware 11 running in Unity mode. What a mouthful.

I've setup the virtual machine to use half the resources of the Mac so I can get decent performance (so 2 cores and 8GB of RAM). I also have VMware running in Unity mode which allows me to have all the active Windows programs in their own Mac window. This is really nice since all I have to do is cmd-tab over to any Windows program instead of messing with keyboard shortcut changes or clicking on the virtual machine window and then clicking on the program.

As for code I'm using BBEdit. BBEdit is just awesome and beats the pants off pretty much any other text editor (Mac or otherwise).

The Process

Ideally I would have a Mac port working and just shell script from BBEdit to build the game as I'm coding (to avoid having Xcode open all the time to just jump over and click compile and run). At the moment I'm too unfamiliar with command line compiling on the Mac and working around Xcode projects in general to get anything done. I've shelved doing that until I have time to devote to figuring it out.

Currently I write the code in BBEdit and save the file into a location on Dropbox. I am thinking I will switch this over to iCloud Drive, but this has little impact since they both work effectively the same.

Then I go over to a Windows command prompt to execute my build.bat file which compiles the code. Since the code is in Dropbox, I don't want it to build in Dropbox. I could just tell Dropbox to ignore the build folder, but that could be tedious and error prone. So instead I compile into a local directory and run it from there. Currently I've setup a virtual drive to whatever local folder I'm using to make life easier.

Once compiled (which takes like 2 seconds) I go over to Visual Studio and run the program in debug mode.

One of the awesome things I picked up from Handmade Hero is separating the game code from the platform layer. if the game is already running I instead just go over to it and check it or preform any testing since once the changes are compiled the game just updates automatically.

Desires

Obviously I would like to get the Mac port up and running with command line compiling tools on the Mac using BBEdit.

After that, another thing I would like is to use LLVM to target compile for another platform and compile straight onto a networked PC from within BBEdit. This would allow me to code and compile using the Mac and just turn around on my desk to a networked Windows PC and see the results.

Lastly, but really firstly, I need to setup a daily backup scheme for version control. At the moment I'm thinking I will just create a .bat file that I either run manually or have setup as a daily task.

Why the cloud?

The primary reason is to have an extensive backup option.

Having the code in the Dropbox folder allows all my changes to be propagated quickly amongst any machines that I may use (multiple local copies), plus grabs it to store online (Dropbox remote copy), Time Machine grabs it (local versioned backup copies), and my online backup, Backblaze, grabs it from several computers and stores it online (multiple copies in a different remote location).

A secondary reason is this allows me to continue coding on another computer, code on the go, or compile a local copy to say demo the game on another machine.

Why not git?

Honestly? Because I don't really need it and it's a pain in the ass to learn and use. I can easily create my own version control system, and BBEdit has a nice file dif function.

Why not CMake?

I'm not using CMake because I'm unfamiliar with it, and it takes a bit longer to compile. I also want to learn the manual process for each platform right now so I know what's going on.

I might consider using CMake in the future, but probably just for the game code and only to do the cross-platform builds.

Development Blog

(Permalink)

I've done some development blogging on this site already, but starting today I'm going to start separating it from the rest of the content. At first this is going to be internally, but sometime soon I will have a different link for the development entries.

For the time being all development, regardless of project, will be in one set of posts. In other words I'm not going to do different development blogs for my different games/projects.

Weekly Update

(Permalink)

Fridays are always interesting.

The family schedule is such that on Fridays I don’t work in the studio, but instead must spend the majority of my time in front of a Windows machine while the kids are running around.

The good thing is at least it gives me an opportunity to catch up on things I’ve put aside all week. The bad thing is I generally miss out on doing anything productive, especially if it requires the Mac.

These are some of the hurdles that have driven me mad the past few years.

Game Engine

While not much overall progress has been done with the engine I feel that I’ve still made good strides this week.

I’ve always had a hard time with text editors. There’s always something that just kills it for me. Especially text editors that are like “This is a hackable editor!”

Guess what, I don’t want to hack it. I want it to work and to give me options. Sublime 3 is actually pretty good, expect for the inane headache of trying to do anything custom with it. I have things I want to do with custom syntax highlighting (for example), but it’s a minefield to get that to work.

Really? I can’t have menus and popups that allow me to create custom syntax highlighting or change the colors or something? I must edit extremely large xml or JSON style documents (in a zip archive!) with no documentation or guides?

If you say that I should just go figure it out, it’s not that hard... well, I’m glad you have the time to spend on something like that.

And no, I’m not going to spend time creating a custom text editor! I’ve got enough trying to do this engine. One life altering project at a time thank you.

So I decided to pick up and give BBEdit a try. I’ve heard great things about it for years, but never really had the need to fully engage.

So far I’m getting comfortable with it. While it’s not perfect, it does a lot of cool stuff, and is very powerful. I like how I can change the entire interface based on the programming language I’m writing in at the time.

As to coding the engine, I have trimmed the code down and have a rectangle moving in the basic way that I want to handle character movement (left to right in the middle of the screen).

So I’m now coding and should have a bit more to actually show next week.

Short Stories

Not much to say on this front yet, still pondering.

Updates

After thinking about it, I think I’m going to move away from doing a dedicated weekly “update” and instead focus on just posting about interesting or noteworthy things. I will aim for multiple posts a week, but should get at least one in every week. It might be on Fridays, it might not.

Well, what’s the difference you might ask?

It’s more presentational than anything else (but really, I’m just tired of writing “Weekly Update” as the post title).

First Update of the Year

(Permalink)

The start of the first full week of the new year. Everything is slowly returning to normal.

Meh.

It's cold and wet. At least it's not as cold as it was last week.

So... What Happened?

This blog sort of ran off the rails sometime in late October and you might be wondering what happened.

Simply put, things got busy and once I started slipping on updates it sort of unraveled. All sorts of shenanigans from kids getting sick (which leads to Kelly getting sick, which sometimes leads to me getting sick), to holidays, and family dealings.

But one other thing happened that really threw things around. I found Handmade Hero. This caused me to rethink some things and change course. Not in what I was doing or planning mind you, but in how I'm going to present and implement it.

This course correction is mostly what has taken up my time until now.

A Little History...

I started programming in C when I was in middle school. Since that time I've been thinking about and planning on making games. I got fairly good and I even created a few basic text adventures (sadly these are long lost to the ravages of time).

Then the internet happened and I shifted towards web coding during my late high school years in the mid 90s. The web was seductive, easy, simple. I was afraid at the time of that veritable dark pit of advanced C coding.

Since then I've always wanted to go back and brush up on C. I'm no longer a fan of web work, and find that it's allure has grown stale. In the back of my head I always wanted to create my own game engine but it felt daunting. It didn't help that there were other good game engines available.

Look, a very shiny object...

Ahem... Ah... yes, okay... where was I...

I've spent a lot of time looking at and learning other game engines but... I don't know. None of them really grabbed me. There was always a catch. Some platform it didn't support (especially consoles), a price tag that was too high or convoluted, or it was just confusing or poorly documented.

So I've been battling with engines for a very, very long time.

Then completely out of the blue I accidentally found Handmade Hero (I believe it was a retweet from John Siracusa).

So I looked it over out of curiosity and started watching the video archive. I was hooked. Here was a series of ongoing video streams from Casey Muratori showing how to code a game in C. All from scratch! Watching them I quickly realized that I could indeed create an engine and an engine that I WANTED!

Now it won't be easy or quick, but I had found a solution to my problem.

So yeah, I'm building my own game engine. It's only taken what, about 25 years to get here.

The Engine

Thanks to Casey's graciousness I've been allowed to use parts of the code from Handmade Hero in my own engine. At the end of the day I don't know if any of his code will end up being in my engine or not, but I wanted to make sure it was okay with him before starting just in case stuff makes it in there. Plus I wanted to give him the credit he deserves. Without Handmade Hero I wouldn't be on this track right now.

At this point I'm not completely sure of a few things, but I'm nailing them down so I can get fully started.

I've caught up with the platform code from Handmade Hero, which is the only real part that I need since my games will pretty much be nothing like Casey's. This allows me to start coding the game without having to figure out all the platform stuff yet (which was a big sticking point in the past).

Out of the different computers I have available the only one I have complete access to is my Mac Mini (a 2.5GHz Quad core with 16GB of Ram - pretty nice little machine actually). I have a Bootcamp partition with Window 7 installed and VMware so I can virtualize Windows in Mac OS if I need to.

I don't want to do all of my development in a VM, and other circumstances prevent me from just running off Bootcamp all day long (and why would you want to?). This means I will mostly be working on a Mac (my preferred platform anyway) which begs the question of figuring out which text editor to use and how to work with the complier. Xcode is the obvious choice, but I'm not sure if that's the way I want to go.

I will be hacking at this during the week while modifying and cleaning up the code from Handmade Hero to suit my taste and style.

Short Stories

I love writing. The short stories I have been putting out have been a lot of fun. The question remains do I have enough time to do these weekly, or switch to bi-weekly or monthly? Also, do I have enough time to put together and release the readings?

To be honest, I love the weekly concept, but with scheduling issues, a monthly approach would be easier on me. Though doing it monthly I might find myself slipping on them.

I'm torn on the issue and I think I will need to ponder it further. Fear not (or be very fearful?), I will be continuing with them in one way or another soon.

Updates

I still plan on doing weekly updates, so look out for those. I'm leaning towards Fridays, but I'm leaving that open for now. Outside of that I will probably update the blog with anything interesting or random bits such as thoughts on things I'm reading, watching, or playing.

Here's to 2015 being a step in the right direction!

Yes, I'm still alive...

(Permalink)

Just a quick note to expect an update on Monday.

I apologize for the lack of updates the past two months. This time of year is always hard and I found that once I stepped away for a week from updating and writing it all went to hell.

Update

(Permalink)

The past several weeks have been frustratingly busy, so my apologizes for not updating as I should have.

This update will be light as I took a nasty fall Friday morning down my porch steps. Thankfully nothing is broken, but I'm pretty stiff and sore.

Website

I'm debating if I should write more about the content that I'm consuming. As you may have noticed, I published a mini-review / take on the movie Interstellar a few days ago. I have not yet decided, but don't be surprised if I talk more about movies, books, and games that I'm currently enjoying.

Projects

When it comes to doing my work, I have a tendency to burst and bust. I find that I have a hard time focusing on just one over any length of time. To better handle this I'm currently working on multiple projects, switching back and forth amongst them. While this will take longer in the short term, hopefully it will allow me to make more progress in completing things.

I'm currently swapping between four projects and I will say more on each over the coming weeks.

Stories

I have not abandoned my short story writing! At this point I'm still trying to feel this out. I'm thinking I might move to a longer short story once a month. This would allow the story to be complete and interesting. If I do this I'm not sure if I will break it out into weekly installments, or just drop it once a month in complete form.

That's it for now. I should be back on track this week as everything has settled and I can get back to work.

Interstellar

(Permalink)

Interstellar is an... interesting movie.

It's very much a Christopher Nolan flick, and reminds me of movies like Inception (yes, I'm aware that's his movie as well). A quasi science fiction story with interesting twists and perceptions.

While the movie clocks in at almost three hours, I find that I would very much have enjoyed something much longer. There really is a lot to that story and the universe that could easily have made the journey longer without deminishing its quality.

One thing I really appreciated about this movie was the take on the apocalypse. Besides being reasonable, it was nicely used as a backdrop instead of being in your face and the focus of the story.

I'm still deciding if I really like the movie or not, but it's definitely a thought provoker. Regardless, it has earned my stamp of approval and is worth a watch and discussion.

Weekly Update

(Permalink)

Right on cue, this week I'm the one to get sick. Yea!

I don't have a new Tale yet this week, but I will be writing that tonight and publishing it in the morning. With any luck I will also finish up the recording and editing for Tale 5 (more below).

Not much visible this week as I've been battling a few things on multiple fronts. The progress I have made has been more setup work. Setting up work flows and refreshing my coding and 3D modeling skills to familiarize myself with the tools.

In better news, the audio part of Tale 5 - Part A has been completed and released. I also have the recordings for Parts B & C done, or at least I thought I did. Turns out I'm missing the last one to two minutes of each recording. Weird. If not for that I might have finished and released all of Tale 5 last night.

Lastly, my waking up early experiment is working out. I'm generally not too tired and I'm getting more time to complete stuff.

Next week is going to be hit or miss. We have friends moving up so one to two days I will be helping out with that.

Weekly Update

(Permalink)

This week has been a bit of a nightmare.

Kids got sick, then my wife got sick and she worked an extra day which means I lost a day, short turn around web work which needed to be completed, plus other appointments and events already on the schedule.

My schedule has always been a problem when working from home. The nature of having a young family causes a lot of "fires" that need to be tended, and when I'm around, I expect it of myself, and am expected, to assist.

I don't have anything to spare so I can't rent any office space to escape the house to help with this problem. I do have a studio that I threw together that is in the detached garage which helps a lot, but I'm still a yell or text away.

So something has to give.

I've been reluctant to give up sleep, but for now it looks like I will have to make a more concentrated effort and get up early enough to get some work done before I help get the kids up and going for the day.

Such is life I guess. I'm going to make that effort this week and see how it works out.

As to a recap of this week, while not a lot, I was able to get a few minor things completed.

I finished editing the audio and released Tale 4 which you can now go enjoy!

I mocked up a bare page for The Guardian game and finally settled on text treatment for the game logo.

There will be no tale for this week, but I will finish up the recordings and release a new tale next week.

Weekly Update

(Permalink)

After thinking about it this last week, I've decided to go ahead and do weekly updates. Every Friday, probably in the afternoon (Pacific Time) I will release a new update covering the prior week. I will also be linking up the weekly tale announcement with these as well.

This week has been fairly productive, at least for me. Things are still going along more slowly than I want, but they are starting to ramp up.

Forgotten Tales

There will be no weekly tale this week as I try and catch up on the readings. I've published the recordings for the first three tales, and I'm working on editing the fourth one now.

You can listen to the first three tales by going to the end of that particular tale. There you can listen to it in the browser or download the audio file. Alternatively you can subscribe to the feed manually in your podcast app or favorite music player such as iTunes (URL is: http://forgottentale.com/forgottentales?format=RSS). I'm waiting to submit to iTunes (so you can search for it instead of typing in a URL) since iTunes only checks the most recent post for an audio file when you submit. It's a little annoying, but I need to catch up with the readings before I can do that.

I'm aiming to have all the readings done and posted by next Friday as well as have it submitted to iTunes.

So far I think the quality of the recordings is pretty good. My gear and setup allows me to capture a fairly good and clean voice. I'm still mucking through voice acting though so it's not all roses. While editing or listening to each tale I find there are points of cringe at the choices I made during the performance. Normally I might fix these while editing, but I'm trying to get this first batch done and up.

It's been a nice learning experience and a bunch of fun.

Two major things I've discovered about me during this so far.

One, I hate my breathing! I have to manually edit out almost at every pause my audible intake of air. I don't notice it but it's clear as day in the recording. Hopefully as I focus on this and get more experienced I will breath more naturally during my performances.

Two, I never knew I enunciated so poorly. God, how do people understand half of what I say?

Game

This time I'm confident that I will release something next week about my game.

The biggest hamper on this front is my other job, web development. I pick up side work as a web contractor to pay the bills (since I'm not getting anything from the studio). I generally don't take on a lot of work, but this last week it's been a distraction.

This first game is going to be a fairly short playable story (as compared to an interactive story - I'll write up a post on that sometime). It's going to be based on Tale 4 - The Guardian. So stay tuned for that.

That's all for this week!

Weekly Update

(Permalink)

I'm not sure yet, but I'm thinking I might start writing regular updates (such as once a week) commenting on what I've been up to for the week.

The last week has been hectic on a personal basis and has left me with less time to work on stuff.

I have some preliminary materials for my game I will be posting, but I need to finish up some things before I do that so expect that early next week.

Some good news is I've gone through the equipment I have, found some software, and ran a bunch of tests and I'm pretty set for doing voice work at a decent level here at the studio. It's not professional but at least it's not terrible.

This will now allow me to do the readings for my Forgotten Tales series and any voice work for the game.

I'm hoping I have all the readings up and ready by end of next week so I can submit the feed to iTunes.

6: Duces

(Permalink)

It's Friday morning and that means it's time for another Forgotten Tale.

6: Duces is up and ready to read.

Enjoy!

Weekly Short Stories are Now Forgotten Tales

(Permalink)

Since I started creating them two months ago I've been thinking a lot about and experimenting with my weekly short stories. After 5 tales (8 parts in total) I've solidified on what works for me and how I want to proceed.

I'm naming the collection of my weekly short stories "Forgotten Tales." I've dabbled with other names but in the end I find this one the most fitting.

I was writing and releasing the tale the same day. This lead to complications and unpredictability in the schedule that I want to avoid. So now I will be creating the tale at some point during the week but will be releasing it every Friday morning (Pacific).

The goal of these tales is to spend a little time every week away from my current project and do something fresh, to "stretch my legs." I want these to be raw short snippets that I can toss or dig up later. Something akin to a quick doodle or sketch from an artist.

Normally these types of creative exercises are not publicly shared, but I don't see the point of that. I want people to be able to experience my work.

During this time I've discovered that I generally only spend a few hours creating these. For me this is the tipping point. If I work on them any longer I will end up spending a lot more time on them and building them up into something more. This tends to end up competing with my current major project which I don't want. In essence devoting more time only distracts me instead of helping me.

While I don't spend a lot of time proofing these, I do generally read through them a few times to try and catch any obvious mistakes. Since reading out loud is a good way to proof something I've decided that I will do a "reading" of the tale and publish it with the written version as a podcast.

The podcast and the current blog format will be the one and the same. Both the text and the audio file can be found on the site or your RSS reader as it is now, but also in your favorite podcast app.

Over the next week or two I will be doing a reading of my past short stories and updating the respective post to include the audio file. I will announce when it's available to grab from places like iTunes.

I hope you enjoy these tales as much as I do creating them.

5: Flute - Part C

(Permalink)

I have posted the third and final part of my fifth short story.

I have also posted the original version I wrote sometime in the 1990s for comparison's sake.

Enjoy!

Updates Coming Soon

(Permalink)

It's been a tad crazy.

Yes, I've been playing Destiny and have found myself quite distracted when I shouldn't have, but such is life.

I have lots incoming. Expect details on how I will go forward with my short stories, postmortums, readings, not to mention the final part of the current short story on friday.

I will also have some preliminary details on my first game sometime over this next week.

Sit back, have a beer, relax. It's going to get interesting.

5: Flute - Part B

(Permalink)

I have posted the second part of my fifth short story. Turns out this will be a three parter.

I'm still working out the kinks on when I do, and post, these writings.

Enjoy!

5: Flute - Part A

(Permalink)

I've posted my latest short story, 5: Flute - Part 1. Like the last one, this is a two parter.

Also like the last story, and will be with the one upcoming, this is based on my memory of an old story of mine. I have not read the story, but will read it and post the original one after I finish this one.

I'm running a bit behind schedule this week, but I'm planning on getting the final part to this story out by Friday.

Enjoy!

Promises

(Permalink)

I've been watching things happen online in regards to sexism, harrasement, and in general the treatment of women. This distrubs me greatly as a human being, and as a father of three girls.

As a man, I've been thinking about how I can change things. What I have come up with is that I've decided to take two oaths. With one hand raised and the other on whatever holy book matters to you I speak:

I solemnly swear that I will only write stories with a female protagonist or in cases of multiple protagonists that at least one is female.

I also solemnly swear that I will predominately, if not only, hire women for my studio.


All of my stories as of this writing (1 - 4) fit or just barely hit the line of these oaths. When I have time in the next few months I will go in and fix these stories to more accurately reflect these oaths.

4: The Guardian

(Permalink)

I have finished the second half of my fourth short story. I just added it to the first part and you can now view it in its entirety.

I have also posted the original version I wrote sometime in the 1990s for comparison's sake.

I would appreciate if you could let me know what you think once you read it.

Enjoy!

4: The Guardian - Part A

(Permalink)

I've posted the short story for this week - 4: The Guardian

This week’s short story I consider the first failure of the run. It’s late and incomplete.

Story 4 will be in two parts, the first part you can read today, and the rest I will post next week. I will simply update the story next week to include part B.

I would love to hear what you think!

Enjoy!