Progress – Locations

One of the worst parts about designing a game engine is that a whoooole lot of the work you do goes into the underlying infrastructure, which tends to be rather boilerplate work that facilitates content when it’s done, but does not actually produce much of anything you can actually show others when it’s still in progress as proof that you’re actually getting work done.  Such is the case right about now – I’ve been working on enabling location navigation within the game engine now, which is basically taking us up one more level: locations contain characters, with whom you can get into encounters, as was demonstrated in the last video.

Unfortunately, I’ve still got a ways to go as far as work goes on this part of the game engine, but since I’m a tease, here are some early screenshots to tide you over and reassure you that I am in fact working on this game:

Continue reading

Font poll – The results!

Thanks to everyone who responded.  The poll regarding the MLI dialog font had a much bigger turnout than I expected.  You guys are awesome!

To get the following results, I took every person’s post and added 1 to the tally of each font they spoke positively towards, and then subtracted 1 from the tally of each font they spoke negatively towards.  I didn’t explicitly say you could list more than one font, but most people did, so I figured this would be the most fair way to make sure that everyone’s full opinions are fully accounted for.

That said, as far as the results go… oh dear.  I feel a bit like Twilight in The Ticket Master right about now. Full results after the break.

Continue reading

Reader input wanted – Dialog font

I haven’t been working on this that much lately – was taking a break for the second half of last week, and then over last weekend I was down in Northwest Bronyfest having a good time meeting some of you awesome folk!  However, now I’m back, and about ready to get back in business.  First off, however, I want to talk about, and get input from you on, a topic that keeps coming up in viewer feedback: namely, the font choice for the dialog in the game.

Currently, it looks like this:

(If it’s not clear, I’m talking about the font for “Apple Bloom, your…”)

Now, let me be clear: I still like this font.  I chose it rather than a font more closely approximating the Ace Attorney font because I felt that Friendship is Magic is much softer around the edges than Ace Attorney was – both in terms of dialog and in terms of content – and I felt that I should pick a font for the dialog that reflected that.  And this comic book-style font seemed to fit nicely.

However… if there’s one single thing that the entire MLI fan base seems to be united against, at least as far as I can tell… it’s this font.  Every time I check on people talking about MLI, the one thing that always seems to come up as the thing they don’t like is that font.  I’ve already accepted from the outset that I can’t please everyone… but something that pleases no one is, well, a little different.  So, I’m officially giving you the chance to have your voice heard on this topic, since I’m quite seriously pondering changing that font to a different one.  (Alternately, if you do like the font and would like to keep it the way it is, please tell me – I’ve literally had no one say so, so if you’re in that boat, please let that be known!)

More info after the break!

Continue reading

Engine demo – Character encounters

Phew, this took a bit longer than I expected it to – I kept finding more and more things I wanted to implement for the test content seen in this video –  but the next gameplay video is finally ready for display.  This time, we’re taking a look at character encounters.  A full explanation can be found in the video (now with narration!), so I’ll just stop talking and post the video:

More details about just what is seen in this video appear after the break.

Continue reading

Character encounters coming soon

Just checking in to say that progress is coming along just fine on character encounters.  These will take us one level above interrogations – character encounters account for a full session with another character at a given location, which can include multiple questions and interrogations.

I’m still working on them, but a gameplay video should be out in the near future.  Here are some screenshots to tide you over until then!  (Click for full size.)

All hard-coded values removed

Dear Princess Celestia,


Today I learned an important lesson on the value of good coding design.  If you’re writing a piece of software that you intend to be modular, it’s always a good idea to plan out the design to actually function this way before you start writing any code.  Otherwise, a sudden realization of a fundamental design flaw might require you to rewrite the whole content storage system in your application.  And that wouldn’t be so good.


Your faithful student,


Gabu

OK, so I know that I said in my last blog entry that the next thing I’d be working on was character encounters, but as you probably gleaned from the above, I suddenly realized shortly after writing that that there was a fundamental design flaw in the way in which content was stored in my application that made it impossible to load content (images, audio, etc.) from an external source.  This was a Very Bad Thing, because that obviously meant that the entire idea I had behind cases being modular and separate from the executable was not going to work.  So unfortunately I had to spent the last two days effectively tearing down and rewriting the content storage system in the game to properly accommodate the loading of external content.

However, I’m pleased to report that that speed bump is now behind us, and the game is now looking better than ever.  I’ve now broken off the case source compiler from the executable itself, and have gotten it to successfully compile all the case data plus all required images into a single binary file that can then be loaded into the executable.  In other words, I’ve already got a very, very rudimentary version of a case editor up and running.  <fluttershy>yay!</fluttershy>

As such, now I can finally begin work on character encounters.  Sorry to anyone who was expecting that work sooner.  I promise that when that’s done, I’ll finally actually have some more gameplay footage for you to look at, rather than just this technical mumbo jumbo. 🙂

More details for those interested after the break.

Continue reading

Interrogation parser is done

I unfortunately don’t have much to actually show for this bit of work that I just completed, but it’s important all the same.  Essentially, as I alluded to in my last post, I’ve been building a rudimentary parser for a conversation declaration language that I’ve put together, which allows me to quickly define conversations in an intuitive and sequential fashion.  That parser is now complete – I’ve successfully gotten a text file to compile into a conversation object that can then be loaded into the game engine and interacted with.  As work progresses and I implement other aspects of the game engine, this parser will need to be upgraded to also compile text files into objects for those parts as well, but this is a good start.

If you’re currently wondering why you would care about this – isn’t this just an internal implementation detail? – enabling the ability to define the case data in this fashion separates the game data from the game engine, which carries with it a number of tangible benefits:

  1. It enables cases to be defined in a modular fashion – in other words, cases aren’t built directly into the executable file. This makes it so that players will be able to install the executable file once, and then just download and open separate case files to play future cases, instead of requiring an update to the executable file itself.
  2. It enables the creation of a case editor separate from the game itself, which can be used to create, edit, and save these case source files, which can then be compiled and loaded into the game itself.
  3. It enables cases to be defined in a platform-agnostic fashion – the game I’m implementing is built in XNA, meaning that it won’t run within the context of an operating system other than Windows, but because the cases are defined in this fashion, porting the game to another operating system would only require the re-implementation of the game engine and the case source parser, not a re-implementation of the actual cases themselves.

For those who are really interested, the definition of the conversation seen in the video in the last post, along with an explanation of the different actions defined within it, appear after the break.

Continue reading

Engine demo – Interrogations

The very first part of the game that I decided to start working on, since I had a feeling it would be the most involved, was the interrogations – the portions of the game where you listen to a character talk about a subject, press them for more details or to get a reaction from them, and then present them with evidence to expose a lie if they’re making one.  That portion of the game engine is more or less complete at this point, and I’ve put up a video demonstrating the gameplay for this part of the game after the break.

More info after the break.

Continue reading

Welcome to the diary!

Hello, all!

If you’re reading this, you’re probably here to check out the My Little Investigations project.  So, let me begin first by describing the project.

What is My Little Investigations?

My Little Investigations (working title) is a video game that I got the inspiration for and decided to start work on a little while ago.  It’s a MLP:FiM video game with gameplay quite similar to that appearing in the game Ace Attorney Investigations: Miles Edgeworth, although it the gameplay won’t be completely copied feature-for-feature.  In short, the game will be split up into separate cases, each of which begins with a crime being committed, and each of which requires Twilight Sparkle to investigate, to talk to and confront various characters from the MLP:FiM universe, and to ultimately solve the puzzle and unravel the case.

If that sounds like a very vague description, don’t worry – I plan to periodically post gameplay videos as I work on the game, which should hopefully serve to fill in viewers regarding the specific gameplay mechanics underlying the game.  So all should become clear in due time.

(More questions after the break.)

Continue reading