Back to Roots Adds NPC and Merchant Support

Jc/Fearyourself has been a busy man these last few weeks; he’s been traveling internationally and dealing with other stuff in his offline life. However, he’s recently had some time to work on Back to Roots, and has made several key bits of progress on it.

For starters, he recently checked in his 400th commit to his code repository, which contains the start of what he intends to present as the project’s tech demo. The engine, as of this commit, can now load the Ultima 4 and Ultima 5 world maps1 and features a cleaned up combat system. Monsters in the game are also more persistent now; if you flee into a city to escape an encounter, the monster will be waiting when you again exit to the world map.

Saving, automatic reloading, and city handling have also been improved, as can be seen in this video:

[youtube http://www.youtube.com/watch?v=mnCSh3PTkU0?rel=0&hd=1&w=560&h=450]

Revision 400

You can download the Revision 400 source code at Fearyourself’s SourceForge page. Within this revision, most of the NPCs and merchants from both Ultima 4 and Ultima 5 will be present.

Shortly after hitting the above milestone, Fearyourself moved on to implementing the first NPC in his upcoming tech demo: Annon of Britain. This was achieved using an XML-based configuration, which the Back to Roots engine parses and turns into the in-game character. The results can be seen here:

[youtube http://www.youtube.com/watch?v=YgkYpROPXb8?rel=0&hd=1&w=560&h=450]

New characters

And with that taken care of, Fearyourself next set about getting a merchant working as well. Flint, located in North Brittany, sells weapons at the insistence of Annon. Merchants in the tech demo will, again, be configured via XML, which the engine parses in order to deliver something like this:

[youtube http://www.youtube.com/watch?v=I_j8F8YkQ7U?rel=0&hd=1&w=560&h=450]

First merchant

That’s quite a lot of progress in a very short span of time!

[1] The engine does require the original data files from a legitimate copy of each game, of course.

6 Responses

  1. Sanctimonia says:

    I think the fact that no one comments on these types of posts shows that Aiera viewers are largely unproductive, if not vampiric. This news is why we’re still here, or we’d all be using DOS, and we wouldn’t be using DOSbox, we’d exist twenty years ago. Get with the program, people: support those keeping Ultima alive.

    Good work Jc. Let’s kick ass until the IP holders finally say, “Damn they made a better Ultima game than us.” All the CG artists in the world couldn’t make a better Ultima game if their lives depended on it.

  2. fearyourself says:

    Thanks Sanctimonia, on the other hand, people sometimes simply read what’s going on and don’t always have the time or the possibility to say “great job” or “good work”. That’s ok too!

    As a whole, we work on our projects when we have time and follow the news of the other projects at the same time with even or greater interest. It is always interesting to read them and I often do it from my phone and I don’t have the possibility to answer a long message (and the other night, my phone even refused ;-)).

    You, for example, have been really busy and though I haven’t said anything about it, I think it’s awesome the fact you have moved yourself into GAMBAS3 (though that work must be huge) and the fact that you are working on networking, persistant objects and trying to get hardware support for your graphic engine. I sometimes play with the idea of going multiplayer in my engine and then backtrack saying “to each their own”, and happily go back to integrating Annon in my tech simple solo-player demo 🙂

    The fact that no one answers is fine because I think people still read up and see what is happening and how it goes forward. I’m in it for me and having a good time, when it will be more stable, people might join up to play with it, etc. but that’s a later stage. People like Dino, Kenneth, and Dungy are doing the hugest of work: keeping us all informed, and I lower my hat to them because it’s a GIGANTIC task; what we do: simply program/create graphics+sound/write stories.

    As for the IP holders, I am in no way in competition with them nor have I ever wanted to be. They have their reasons and intentions, they have them for whatever reasons and that’s fine. As before: to each their own.

    @Kenneth: not really important but revision 400 actually contains this:

    – The engine can load U4/U5/Current tech demo
    – For U4/U5 you need your original game there, I’d be happy to help configure your game and my engine
    – For U4/U5, you DO have the Npcs. In U4, you have all the Npcs and 90% of the stores; in U5, you have all the Npcs and the inns in place.
    – For the tech demo, you had the combat system back up (which was taken out of U5 because of the loading of combat maps wasn’t there). The system now loads the maps from U5 and actually sets the positions of the players and monsters as defined by U5 data files. The system also checks on what tile you are to load the right combat map.
    – The rest of the updates of this post are actually news on the tech demo. I’ve integrated a XML parser to help script Npcs into the game. Though the U4/U5 versions do not look at these XML files, it would be 5 seconds to add such a feature and then we could add whoever we wish into the original games.

    Jc

  3. Sanctimonia says:

    Hey Jc. You’re right. I was in a mood last night and flew off the handle. Sorry about that.

  4. fearyourself says:

    No worries, I think your message has its merit and I can definitely understand the frustation of feeling sometimes “alone on this quest of doing something awesome” 🙂

    But, I believe we both do it for a common goal : we simply want to and have a good time doing it. I’m doing it because I love the challenge.

    Jc

  5. Sanctimonia says:

    FEARYOURSELF said, “But, I believe we both do it for a common goal : we simply want to and have a good time doing it. I’m doing it because I love the challenge.”

    Yes, there are many reasons why we do it. The challenge, the “itch” as they call it, and sometimes the glory. It’s a conquest, a discovery, an adventure. I personally want some random player to say, “Holy shit! That was crazy. Look man, look what you can do.” and show him how to do it. I want the glory, but only in the enjoyment of other people. Then I’ll know I’ve succeeded.

  6. fearyourself says:

    It is true too. I’m simpler I think. I started this for two reasons: I hadn’t yet done a serious C++ project and have always loved game programming. Whether people play or not, doesn’t really matter for the moment, it’s more a hobby for me and a daily challenge than anything else!