Quests

It’s been one of the last missing essential feature for a while and I’ve finally started to implement it.
Conceiving a good system for easily describing quests and interacting in an efficient manner with the rest of the game is not such a trivial task. However, the event system used in pretty much everything in the game actually paid off by making this much easier than I thought.

The quest system is now on the works:

Quests are composed of a set of objectives that are completed when a set of conditions are met: they can be triggered by game events, or scripts, and will themselves be able to unlock other objectives, giving the player several choices to end the same quests.

The Pipbuck now also implements an app to check up on your quests and their current progression (though the progression checking is still a WIP).

snapshot1
The Pipbuck Quest Application

On other news, I’ve also spent some time on tackling down a lot of issues, bugs and performance limitations in the engine. While reducing the amount of code: this thing is 40k lines long. It’s hard to factorize it without reducing the simplicity or elasticity of the design, so it’s always a good thing when I find some way to do it.

Well that’s all for this time.
I still have a lot of work to do before that, but I do hope I’ll be able to put a special treat in the next post.

Advertisements

This week in FoE RPG

Good day,

The fact that I have a lot of more important things to do motivated me to work a lot on the game engine instead. So this week saw a lot of improvements and new features.

I guess the main thing that happened this week is the work on the Worldmap Editor, which previously didn’t even exist. Not only does it allow us to create, pick and move cities on the worldmap, but it also bring new features to configure the cases that compose the map.

Just like in the old Fallout games, each case you walk in may influence the movement speed of the character, as well as the types of encounters you will make and the terrain on which the encounter will happen.
snapshot1

The development on this tool isn’t completely over yet, but the next additions will wait until I work on a good character sheet tool for the game editor.

Teaser

Hey guys !

crepuscule

It’s been very long since my previous post. A great deal of things have been accomplished, but we’re still far from anything really worth showing. Instead of raining information on in-progress work, I’ll just talk about a little thing that just made us go a lot further in the development.

The past few days, among other things, I have been working on the maps. And to be more specific, I’ve worked in many ways to allow the coming of our first terrains in the game.

Our Level Designer now implements new features that allow us to handle waypoints faster. We can now automatically place waypoints exactly where they need to be, and selecting waypoints have been made easier.

This allowed me to generate a terrain and import it into the game in almost no time at all. Having finally obtained a terrain to test on, a few adjustment later, I was able to obtain this result. You’re seeing up there a screenshot of our terrain at more or less 7:30pm in-game.

That’s all for now, but more is coming !

Getting there

Hey !

I’ve reached the second milestone as planned (well, much faster than planned). And things have been going so well that I thought I would keep working on things until I have enough material for a video much more thrilling than the last one.

And since it will take time, have a little peak at what’s already ready for that next video:

-> New Game creation system and interface, allows you to pick a pre-made character or to create your own, then start a new game.

-> Loading/Saving interfaces: they were shown in the first video, but the interface wasn’t ready at all. Most of it is done now, the interface is much more easier to read and shows details about the saves.

-> Music and sound management. It works pretty well, and has – I believe – every feature you would expect it to have. You’ll see the details in the video.

-> Pipbuck: that’s right, the PipBuck is finally here ! It’s completely different than the Pipboys actually, it’s designed like a little PDA: when you launch it, it shows a list of application that you can launch, interact with, quit or set as background task (useful for, say, a radio application).

It has already two applications, one of which being the clock: you can use it to wait (when possible) for several hours or days.
And since this was implemented, it allowed me to check out the day/night cycle code and make it work with the game clock. So that’s pretty cool.

Sorry if it seems little, I’m trying not to spoil the future big announcement. But I hope it showed you that things are going well.
And well, of course I can’t end this post without some screenshots:

 This is the bartering interface. It seems a bit tight right now, I’ll work on it later. Currently I have it working just like the one from the first Fallouts, but given that screens are much bigger now, I’ll take advantage of all the additional space.

 

And this is the clock application running inside the Pipbuck. A display for the date, an interface to select how much time you want to wait, a few buttons to trigger all that… it’s the most basic application, but it shows a little bit what we’re able to do with that (and you should soon see much more coming for the Pipbuck, especially since I’m going to work on the quest system pretty soon).

Alright gentlemen, I hope you enjoyed the post ! I must go now. Farewell !

 

The Dealer

Greetings.

Firstly, many thanks to Equestria Daily and Equestria Megathreads for giving us a bit of light ! And thank you for taking interest in this project. I really want to have a Fallout Equestria game someday, and I’m glad to see that I’m not alone waiting for that.

It’s been a bit more than a week, and a great deal of things have been accomplished. The first video was made after the first project milestone was developed: it was mostly putting the engine basis, such as data engine, script engine, special, and so on.

The second milestone goes about more noticeable stuff, and despite being pretty busy, I still managed to end a good deal of it. We now have:
– Option menu, with resolution, fullscreen/windowed mode and language settings. More to come.
– Interface internationalization (since the dialogues already were, everything is ready for traduction).
– The time now passes by as you travel the wasteland.
– Barter.
– Plenty of other technical stuff to prepare for what’s coming next.

And  there’s still a lot to achieve before the second milestone is reached: for instance a way to actually start games. And a powerful buff system, allowing scripted buffs to act on characters… it will help implement explosives, all kind of poisonings, and drug addiction… the average day of the perfect muckdweller.

AND I have ideas for the PipBuck. I want to work a lot on the script engine to make it a real little computer inside the game. The PipBuck would initially have the same goal as in Fallout 1/2. But it would also be able to get upgrades, which would be new applications for the PipBuck (like a movement detector, a geiger counter, a calendar to keep track of your quests timelines, a hacking tool that allow you to read crypted holodisks, desktop ponies).

Well. Things are going very smoothly. Now that the engine has all it’s basic tools, developing new stuff revealed quite pleasant.
I’m a little short in time so you won’t hear from the project in a while: but it’ll still go on. If you want to check if things are still going on, you can keep an eye on the change list:
http://code.google.com/p/fallout-equestria/source/list

I’ll post something when the second milestone is reached (which could take a few weeks). See you then !

End of chapter one

Well, this is it: after five months of hard work, I finally reached the first milestone in development.
This means that we have a good number of the game engine that are ready. And that every bug of critical and high importance have been fixed.

First, check out that video:

Let’s take a few minutes to look back at what has been done during the past five months.

Inventory Management

One of the most important part of this first milestone is the fully functional inventory management. Developed in a very flexible way, it allows a lot of different uses with very little code.

One of this use is the playable character inventory interface.
It’s very simple, but it’s only the basis for what will be a much better and Fallout-looking inventory management in the future, with details about the objects.
On its current state, it already allows a player to equip objects using mouth / magic / battlesaddles (whatever the item can be used with). We can also drop the object, which will make them appear on the ground. And we can also directly use them on ourself.

Another use is to pick up items from a container (which could be a body or a shelf).
The screenshot also shows how items appearing multiple times in an inventory are showed in a group. What it doesn’t show is that you can move items from one inventory to the other using drag’n’drop (careful developers: needs Panda3D > 1.8.0, otherwise you’ll have to use double-clicks).

Inventories also use the weight statistic coming directly from your SPECIAL character sheet. So you probably won’t be able to fit that crate of rocket launchers between those ammunitions and nuka-cola bottles.

SPECIAL: The Cutie Mark Acquisition Program
The Cutie Mark Acquisition Program, CMAP for short, is our implementation of the SPECIAL statistic system.
The interesting part for developers about it is that it was developed in such a way that, in the near future, it will be separated from the main branch and become a library of its own, allowing other game developer to easily implement SPECIAL in their own game, using the nice MVC architecture and AngelCode scripting of the CMAP.

The CMAP aims to reimplement every characteristics of the traditional Fallout SPECIAL system, and provide an interface similar to those of the three first Fallout (the third being Fallout Tactics, not Fallout 3).

And it’s almost doing all this already: we only miss the skill affinities and the perks. Which are both planned for the next milestone.

Worldmap
The worldmap was always the big scary parts of Fallouts. If you weren’t a good traveler, it was the place of a thousand mutated beast waiting to make a meal out of you. It was also a place of exploring. You would venture deep in the unknown, looking for settlements you would’ve heard of and such.
This is exactly what this worldmap will be about. It works the same way as the good old Fallout one: you get out of a city, the worldmap appear, and you can travel from one city to another, or visit the wasteland places you’ve never seen before.

We still lack the random encounters, the “game clock” synchronization (days and night passes as you wander in the waste), and the terrain speed (you won’t move as fast traveling on mountains than on planes). All these features are planned for the third milestone. Though the current state of the worldmap is already working great, and allows us to already explore and get into cities.

Scripted Non-Playing Characters
Our engine also allows NPC to be scripted, putting the spark of life into these 3D models. Some samples script already show that they can check out for enemies around them, flee when they’re afraid, attack when they’re not… and many other behaviors may be implemented using our scripted AI system.

That screenshot also shows how that system allows AI to start a fight when detecting hostile characters… and eventually die before the might of the playable character.

Other things
Those are the most important parts: mostly logical stuff and interfacing with the user. There’s a lot of things I didn’t talk about: script-powered dialogues, data engine, equipping objects, doors, animations, pathfinding, and so on and so on. It’s so much work I can’t put it all in a single post. But all those things are there and ready to be used for the next milestones and, eventually, the final release !

This is pretty much it for the game engine. But of course my work doesn’t stop to simply a game engine: it would be pointless if we couldn’t generate content for it with a proper graphical interface. This is where I introduce to you the game editor:

Game Editor:
A few screenshots will be a much better demonstration of what our Game Editor looks like and what feature it provides.
To put it in a few words, level design, item editing, dialog editing and script writing.
Oh, and the dialog editor was designed and mostly developed by Mrakoplaz, kudos to him !

Well. That’s it for the resume. It was a tremendous amount of work to have it all put together, and I believe it is worth the five month and 30 thousands lines of code already spent on it.

I’m going to keep up with the work, and I hope some benevolent souls will chose to make this project theirs as well 🙂 !
Good day fellows !

Cutie Mark Acquisition Program

Hello !

It’s been a very busy month, but I still managed to do a lot of work for this project ! And most of all, I created the Cutie Mark Acquisition Program (if the name doesn’t ring a bell, you should probably go check out Friendship is Witchcraft right now).

But what is the Cutie Mark Acquisition Program ?
Well, when Fallout was first created, the most awesome statistic system was designed so that players could create their own characters, describe them and make them evolve. Some of the rules of this system changed, but it kind of stayed the same (Special points, statistics, skills and perks always stayed).
Despite the awesomeness of the Special system, it has only been used in a few Black Isle Studio games (Fallout, for which is was made for, and Lionheart). After buying the Fallout license, Bethesda Studio mainly sticked to Special, though they tweaked it a little bit.

But enough of history.
The Cutie Mark Acquisition Program is our implementation of Special. Mainly, it’s a little library that should allow any game developer to include a Special statistic system in his game: it uses
– C++ for the main runtime (an elegant MVC architecture, where the view is an interface. We also provide an implementation of the view using libRocket).
– JSON for describing statistics, perks, and recording characters sheet
– AngelScript for scripting the rules (such as relations between a trait and statistics/skills/special, and so on)

Right now, our system is based on a mix of the Fallout 2 and Fallout Tactics implementations of Special, with some minor changes to make it work in a unicorn-populated land.

I did my best, but the lack of interface designer, again, make it look like quite ugly.
However it works quite well: every statistic you see there is computed with our system, based on Special statistics and Traits.

This screenshot is displaying one of the three possible states of the character sheet that Fallout players must know very well: this is the character creation state (you can change name, age, race, set your special points and your traits).
The two other modes are implemented as well:
– the displaying mode, on which you can only check out your statistics, perks, and check out your experience points and how much you need for the next level.
– the level up mode, on which you can assign your newly gained skill points.

What is left to be done is the dialog that allows you to pick perks when they’re available.

On other news:
– The new system for selecting which waypoint is under the mouse is finally ready, and supports the multiple floors. Yay !
– The game can be load and saved from a level or the worldmap. It’s not completly ready yet, but we’re almost there.
– I’ve been working on an actual drag’n’drop for moving items from an inventory to another.

Oh and also…
We just reached the 30 000 lines of code.

Catch you later folks !