Category Archives: The Endless Forest

The Unreal Forest: step 8

In the run-up to the presentation at the NEoN festival in Dundee in Scotland, we have made The Endless Forest extra pretty. Almost all of the vegetation of Phase One has been implemented in the Unreal remake. But not quite in the same way as in the Quest3D original.

In Quest3D we used a feature called Nature Painting to plant trees and flowers in the forest. Unreal Editor has a similar feature but it doesn’t work with the way we have set up the tiling that is required to make the forest endless. So we had to come up with an entirely new strategy.

After retrieving the final versions of all the 3D models and textures from our old archives based on hints to file names left in the old game code,  we carefully examined the layout and distribution of the trees, plants, logs and rocks in the original game. And then we used a combination of deliberate placing and random generation to create a forest in Unreal that feels similar.

By highlighting objects in bright colors and replacing models by simple shapes in the original Quest3D editor, we were able to distinguish where trees and plants are supposed to go.

An interesting side effect of the procedural method used for distributing foliage is that it is very easy to change the density of the forest, even while the game is running.

Not that we want to implement this right away as we are keen on replicating the original game as faithfully as possible. But this does open up new possibilities for the future.

 

Thank you to all the people who have donated to make this remake possible. We’d love it if you could join them since we have sadly grossly underestimated the effort this remake takes. Also thanks to all those who faithfully contribute to the monthly costs of the server.

If you happen to see us in Dundee during the NEoN festival, do come say hello!

If not, see you in The Forest!

 

—Michaël & Auriea.

The Unreal Forest: step 7

Just a small update to let you know that we have added the buttons for Emotions and Activities to the remake of The Endless Forest in Unreal Engine. And of course all the animations that they trigger, including the dancing. The dance music gets a bit mangled in the video because it’s recorded from two client games running on a single machine. But it works!
Also, but hard to see in the video, we have added all the morph animations for blinking, laughing, sticking your tongue out, etc.

The Endless Forest will be featured in the NeON festival in Dundee in the beginning of November. This festival is organized by some of the people that made the addition of our beloved Halloween event possible. We hope to get a lot of work done before then.

Programming freedom

While remaking The Endless Forest I am becoming acutely aware of how much I have learned about programming in the 13 years that have passed. The new Unreal engine is much more conventionally structured than the old Quest3D ever was. So part of the different approach to programming is determined by that. But there’s something incredibly refreshing about the way I programmed The Endless Forest as a complete amateur.

Over the years I have learned what I assume is good programming practice: to categorize problems and reduce the amount of different routines by collapsing similar pieces of logic. One could organize these categories of routines hierarchically so that subroutines can be children with functionality that the parent routine doesn’t have.

When Object Oriented programming was introduced in Quest3D back when working on the original Endless Forest, I had no use for it. Because I didn’t know how to program. Or how to program properly.

But The Endless Forest is a computer program. A multiplayer online game that has been running for twelve years and has been enjoyed by hundreds of thousands of people. It’s supposedly badly made. But does that matter?

The original Endless Forest is programmed in a rather organic way. There are very few shared routines. Everything is an exception. This means that every element in the game can have its own properties. So when we want butterflies on the flowers we just add them. When the candles need to switch on at night, we set that up. When birds should come sit on antlers we just program that in. None of these systems needs to fit anywhere else. Everything is unique.

In my current approach to programming, which I presume is more mature and more conventional (although far from expert level), it is hard to add such details spontaneously. Because everything is a category. It’s a sort of laziness: if I can design a routine that is used for multiple things, I can reduce the amount of routines I need to design. But adding functionality to such routines makes them less “elegant”, less clean. So I hesitate every time. I basically make my code look pretty rather than the game. Or I attempt to structure things so that the amount of bugs and the potential for crashes is reduced and performance and stability are improved. Rather than making the virtual environment richer and more beautiful.

Computers and the software we have to program them aren’t built for the sort of programming in the original Endless Forest. The game has never run very smoothly on anything but a hardcore game computer. But by adapting our designs to how the computer operates, we reduce our creativity. I have always said that computers were too slow for what I really want to create. Over the two decades I have been involved with them, despite euphoric enthusiasm about increasing gigaflops, they have remained too slow. Not only for what I want to create but also for how I want to create.

We will probably never have a programming environment that allows us to paint with code. The realtime visual flowchart interface of Quest3D probably came closest to that. But the program’s development stopped many years ago. And if it hadn’t, it would have probably become more conventional. When I stopped using it that had introduced arrays, object oriented programming and a separate edit mode. Useful, but in the end limiting for my sort of creative mind.

 

—Michaël Samyn.

The Unreal Forest: step 6

Even if progress is made more slowly than we would like, remaking The Endless Forest only becomes more exciting every day. In no small part thanks to the enthusiastic support from the lovely community of players.

We have added and tweaked forest magic, most visibly the ability to pick up flowers from a patch of hyacinths and give them to another deer. This required creating a new system for growing hyacinths, much like the one for creating mushroom circles.

After some searching through our archives, we collected the assets that make up the floor of Phase One of The Endless Forest: meshes and textures. We adapted them to the new tiling system we had created earlier, the system that makes the forest seem endless, and implemented it in Unreal Engine. Back when we had created this floor, shaders barely existed. So we had to come up with all sorts of tricks to get the look we wanted. Since the floor is very big, we needed to tile textures that are much smaller but we wanted to prevent all too visible repetition. And then there’s, of course, the shadows and lights which are also textures. Amusingly, some things that we had set up in the old game but didn’t quite work, now do! The new Endless Forest will not look the same as the old one. But instead of striving to get as close as possible, we will use the new technology (and the old assets) to create something equally beautiful.

Setting up the ground also required the deer to walk over hills and down valleys. We initially set up a system as in the old game that basically checks where the ground is below the deer and then moves the deer there. But then we realized that, as opposed to the old engine, Unreal has a physics simulation built in. So we are now simply using the built-in gravity simulation to keep the deer on the floor. This may break the old bug that allowed some deer to fly. Sorry about that.

We are making maps of the old game to use as a guide for placement of trees, plants and flowers (like the hyacinth patches). We want the forest to feel familiar. But it is virtually impossible to make an exact copy. The systems we used for doing that are integral to the old engine and very opaque. So we’re making an artistic copy rather than an exact one (something like landscape painting). The atmosphere will be the same and things will be more or less where you expect them.

Major features will, of course, be placed exactly where they are now. We found the meshes and textures that make up the church ruin based on the floor plan of the former abbey church in Ename where The Endless Forest was launched. So we created the appropriate materials and implemented it in the remake. It’s good to see it again (although it’s a bit embarrassing to be confronted with the amateurish way it was modeled!).

Remaking things in a new engine is turning out to be a lot more involved than we had anticipated. We have a pretty good system now for retrieving assets. But every element in the game needs to be first researched in the old engine and then rethought for implementation in the new one. Not only does Quest3D work very differently from Unreal Engine, we have also learned a lot about using videogame technology in the past decade. So we want to apply that knowledge. Towards optimizing the game’s performance, for instance (which is the primary requirement for future expansion). Even though I remember struggling over some systems back in the day, sometimes it seems that it takes even more time to re-make them, despite all our experience.

Another reason why progress is slow is that we are also not the young eager game developers that we were back then. We no longer make ourselves sick by working 14 hours a day. We work more efficiently now but that may not make up for raw energy.

And then there are all the other things that we do. We don’t focus on single short-term projects anymore. But instead, we work simultaneously on multiple projects that span many years. One of those is Auriea’s full-time job in the Kunsthochschule in Kassel. Another is Cricoterie, a VR project that will launch in September… until that happens, work on The Endless Forest will be on hold.

In November, on the other hand, there’s a festival in Scotland where The Endless Forest will be featured! It’s organized by some of the people that made the Halloween features in The Endless Forest possible. And this time too, it was they who complete the Second Decade budget. They are interested now in showing both the current game and the remake, in whatever state it will be. We will want to pour some energy into the project to make a good show.

So, expect much excitement in November!

Have a lovely Summer.

―Michaël & Auriea.

The Unreal Forest: step 5

We didn’t get as much done in January as we wanted to in the Eternal City. But we made up for that in February at home in Ghent.

All of the Forest Magic has been implemented! So now the deer can collect antler spells (by rubbing a tree and eating the pine cone that fell out), mask spells (by eating mushrooms growing on the side of a tree), pelt spells (by keeping a sleeping deer company) and shape-shifting body spells (by sleeping in  a mushroom circle) and cast them on another player to change their appearance with any of the antlers, masks, pelts and bodies in the current game. And the other deer can remove them, by sneezing.

All the deer masks neatly arranged in the Unreal editor.

Finding all the models, textures and sounds required a lot of searching in old files and folders. The Endless Forest was our first release and we only learned how to organize things during its production. To make matters worse, the file server we were using back then had crashed beyond repair. Or so we thought. Thanks to a little program called R-Studio we were able to recover most of the data on that disk.

Adding the antlers, masks and pelts to the remake of the game was fairly straightforward, but the animations of the frog, dove, bat, squirrel, rabbit and raven bodies that the deer can shape-shift into took a bit of extra work. Luckily Unreal Engine is well streamlined for these sorts of jobs.

Little old low poly frog can sit, jump and swim.

The visual effects for spell casting are done in a different, more efficient way than in the old engine. But they look similar enough, if not slightly better (although we’re not exactly working on aesthetics yet).

We’re quite pleased with the progress we’ve made. And wish we could just keep going. But in the next few months some other projects will be demanding our attention too. We will still try to make as much time for The Endless Forest as possible. But we need to be patient.

Our gratitude goes out to all the backers for their support!
You should have received a message about 3D printing the deer models a few weeks ago. The file for printing it yourself will soon be available. We’re running a test on our Ultimaker as we speak.

You can still join the project. The budget for a full remake has nearly been collected. Less than 1000 Euros to go.

―Michaël & Auriea.

The Unreal Forest: step 4

It has been too long since we updated you on our progress remaking the Endless Forest. The main reason is that we have been away from our studio for over half a year due to art residencies in Poland and Italy where we concentrated on other projects.

But that doesn’t mean nothing happened on The Endless Forest. Quite the contrary!

We have extended the tiles of the game world to match the size of the forest of Phase One. We have added proximity detection of trees and the matching rubbing activity. This served the implementation of Forest Magic: when a deer rubs a pine tree, a pine cone falls out. And when the deer eats this pine cone, it gets the magical power to change the look of another deer’s antlers. We have implemented this entire routine so that it can be easily expanded to include the other magical spells, which we will add next month. We have also worked on the action bar with the buttons to make it behave as it does in the current game.

Our art residency in Rome lasts one more month. But we are bringing our computers and file server so we can continue development, even if it only happens at a fraction of our normal speed. If all goes well we should be able to post another update by the beginning of February.

Thank you for your support and your patience. We apologize for our slowness. But please trust that we are fully dedicated to this project. The thought that we will be able to spend more time on it soon makes us glad.

Meanwhile, we hope you’re having the best of holidays and wish you a wonderful 2018, in the Forest and beyond.

—Michaël & Auriea.

The Unreal Forest: step 3

We have implemented some new features in what will one day be the glorious remake of The Endless Forest in Unreal. Some of these can be seen in the video below, taken in the Unreal editor in a local multiplayer session.

The deer now brakes or even sometimes stumbles and falls after running a certain distance. Similarly it now also stretches after sleeping for a long time. And when it is standing idle it will bite its side or scratch its ear once in a while. All of these make the avatar feel much more alive. We have also implemented point-and-click navigation. And have taken the opportunity to smooth out the deer’s motion. We have added the emblematic black border around the screen. For now the only thing it does is scale up when the deer assumes its new alert stance. And finally we have added the logic for the deer to know if any other deer are near, illustrated by the new sniffing functionality.

We’re concentrating on the avatar for the moment because it’s a major part of the game (and a lot of fun to see the deer come alive). But also because it’s something we can do without requiring much network functionality – we’re still hoping that networking (especially the server part) will be made easier in an Unreal update during development.

We have now officially prioritized the remake of The Endless Forest above all other projects. That doesn’t mean other projects will not happen (they certainly will) but that we will not allow them to interrupt work on The Endless Forest. We are still figuring out how to do game development without falling into all the unhealthy traps we experienced before we quit the industry. We’re not giving ourselves deadlines anymore. And we’re allowing ample time for non-professional activities (art and music, most notably). As a result, we will not be producing output with the same hectic frequency as we did before (8 game releases in 12 years!). But our dedication is more sincere than ever.

We will continue to update you on our progress. But if you have any questions, don’t hesitate to ask (in the comments below, or via email or Twitter).

The Endless Forest fundraiser is gradually collecting the remainder of the budget. We’re only 2331 Euros short of a complete remake.

 

—Michaël & Auriea

The Unreal Forest: step 2

This is a little report to keep you up to date on our progress remaking The Endless Forest in Unreal. In the video you can see how we have set up several crucial pieces of logic that only need to be expanded to approach a full remake.

We have added mouse controls for navigation similar to how it works in the current game. So now we can play with either mouse or keyboard. We have also implemented camera controls that approach the original. Both need fine tuning of course.

A major part of this step has been the beginning of the button bar at the bottom of the screen that you use for making the deer do things. We had to learn about how User Interface is done in Unreal (somehow game engines always manage to make creation of UI extremely convoluted). So now we can make the deer sleep, get up, sit down and roar with the button bar dynamically responding to the context. For this we figured out how to trigger animations through button clicks and made it work over the network too (which requires quite a few steps). The roar action also involved adding morphing for the deer to open his mouth and 3D sound (the first sound in the remake is roar!). All this new knowledge will come in handy when developing things further!

At one point we managed to run a multiplayer game over both the local network and the internet. But the last time we tried it was broken again. It still works in the editor though so we will focus on other things for now. Hopefully a future update of Unreal Engine will improve how networking is done. If not, we may need some external help.

We’re quite happy with the progress we’ve made. Next month we need to focus on a commissioned project with a rather tight deadline. So the third progress report on The Unreal Forest may take a bit longer. Do keep an eye on Twitter, where we share most of what’s going on here. And don’t hesitate to contact us if you have any questions.

Remaking The Endless Forest was made possible thanks to your generous contributions to the IndieGogo campaign and the private fundraiser. It is still possible to join, and get some of the cool perks like special deer outfits and 3D prints of your very own avatar.

—Michaël & Auriea

 

The Endless Forest multiplayer in Unreal

The Unreal Forest: step 1

We have made quite a bit of progress in the past few weeks with the remake of The Endless Forest in the Unreal Engine. Thanks to the generous support of many of you, we can make this work our highest priority. We are continuing to raise funds to support this project. You have almost collected the entire amount!

Since The Endless Forest was an early project in our career as game developers, and because it has been developed over several iterations, we haven’t been very orderly in storing the many assets that make up the game. So we’re going through our archives and fishing out every model and texture, sometimes even finding things that never made it into the game (but that might now!).

Because of the engine we used back then, Quest3D, many of the files are in obsolete formats. So part of the work involves converting everything to a format that we can use in Unreal.

Unreal Engine uses a very different paradigm to game creation. It lacks certain features we took advantage of in Quest3D. But it also does a lot of things much better. As a result, however, we cannot simply translate the logic from one program to the other. We have to find new ways of expressing the same ideas, ways that suit the engine well.

I’m delighted to say that we have solved two of the more problematic bits of logic now. Both are related to the endlessness of forest.

First we needed to find a way for the forest to wrap around endlessly so that when the deer arrives at the end of the forest, it finds the beginning again. After some initial despair about not being able to figure out how to implement the same logic as in the old game, we got a brand new very simple idea that actually works fine.

But wrapping one avatar around from end to start isn’t enough. We also need to be able to see other players’ avatars even when they are at the beginning of the forest while we are at the end. We found a solution for this too. And one that has the additional benefit of only rendering the deer that are actually visible, which is good for performance. The system involved separating the “pawns”, as Unreal calls the player avatars, from the actually rendered deer. That caused quite a few headaches dealing with the rather arcane server-client structure of Unreal networking, which seems to be entirely built around preventing cheating, something we don’t care much about in the Endless Forest (in fact, we consider many ways of “cheating” as part of the fun).

Anyway, as you can see below, we can now run a simply networked game with deer who see each other in Unreal now.

The Endless Forest multiplayer in Unreal
The Endless Forest multiplayer in Unreal

We were very eager to share this mini-triumph with you and tried hard to set up a server that you could log into. But this is an area where Unreal is a lot less streamlined than in most others. Creating a dedicated server actually requires downloading and compiling the source code of the engine, and packaging the game through an external tool. In the end we succeeded in running the game on our local network. But only for a minute or so, before clients were mysteriously disconnected.

We haven’t been able to try this on the internet because our current game server is an old 32 bit Windows XP computer and this is not really supported by Unreal. So we’re asking our host to move to a new server machine.

We are eager to continue the work on this project. It’s very exciting to see the deer run around in their new home. We will keep you posted on our progress.

 

Thank you for your support!

 

—Michaël & Auriea

 

We are eager to coniSave

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save