Hey guys, it's been a while.
First of all, let me proudly announce that Project Terra is renaming to The Ancients. The reasoning behind this is because for one, Project Terra has quite a tacky feel to it. The word "Project" intimates that this is simply a project and in the context of gaming, can be taken as a small undertaking. Whilst "Terra" is ambigious at best. As a whole, the title makes no sense and does not, for me personally, make me want to learn more about what this Project is.
Meanwhile, "The Ancients" not only invites you to ask "The Ancients of what?" or "The Ancients? Who are they?", but they suggest an entity, something fathomable and questionable. It holds some solid ground.
Plus, it sounds pretty cool.
Secondly, "Project Terra" is already used by a couple of other games, an oversight on my part on the naming of the game when I renamed from Project Earth.
Fun Fact: Project Terra was originally called Project World.
Now I know what you're thinking. "Azkanan! You are glorious! Where have you been, I've missed you so much!". I know, I know, I'm awesome... relatively.
Well, after a number of short-lived agreements with programmers, I decided that the only way I was going to get Pr...The Ancients off of the ground was to program it myself.
So I started programming Serendipity as a personal project to expand my skills. Sadly though, this was too large a project for a beginner.
Serendipity was basically where the player begins with two villagers; Adam and Eve. The player then gives these villagers orders, in a totally randomly-generated world. The land, flora and fauna are all generated - as are even the stones themselves.
Eventually, the player would be able to research and develop new technologies, from sharpened sticks and fishing, to building vehicles and houses. I wasn't quite sure how far I'd go with it, and was a sort of "Ongoing" idea.
Sadly though, my lack of experience led me to a corner where I was trying to set randomly-generated variables that were based from randomly-generated variables... that were generated by randomly-generated variables. It got super messy.
After this, I decided to try something a bit more straight forward; Via Stella.
The idea was, the player was a character in a single-player RPG, starting on a Space Station. The player could eventually get into a spaceship, and using a terminal, fly through space living the Freelancer-like dream, handling stock, passengers, illicit something-or-other and so forth. A space sim, basically. All very straight-forward. Sadly, I got boned when it came to graphics, which were way out of my league.
At this point, I was going to go into College to learn professional programming; not only would I then be able to program my own games, but I'd be able to run Freelancer jobs in reality for people, earning a coin or two here and there. But first, I gave out one last throw of the dice for a decent programmer at my old hangout, where I first got into MMORPG-making.
And thus, my old acquaintance Lightning contacted me. For the last month or so now, we've been working pretty much every day or two on Project Terra (Exception to Christmas time). Dammit. The Ancients. This could take some work to get used to.
"So, what's happened so far?"
Well, we're working hard toward getting this game up and functional. We started with the infrastructure; things such as storage for variables. We then expanded to the main menus (Character, inventory, Equipment and Relationships) and the Login/Create Account sequence.
We've also made some Mediterranean fish items and base crafting ingredients. I'll come back to this.
Now that the player will be able to log in, create a new account and character and interact with the main interface, we're working toward rendering and world creation.
Today we spent the majority of this time conferencing with the Almighty Programming Guru S.J.R. van Schaik and implementing his valuable advise into the reconstruction of the Map Editor.
We hit a wall when we realized that the current map system that we had, which supported "big" map slices of 2500x2500 tiles was not going to support the world we had planned... Rome and its neighbouring cities (10, including Rome) took up 5000x5000 alone, seen below.
Now, the above is the "Alpha Area" which is what I want accessible to players, when we first start the game (Otherwise, the players could be waiting 6+ months longer before they can play). Instead, we plan to release the above area on "Release Day", and then release more regions of Italy as expand from there in patches/updates.
Now, considering the above, here is what playable Italy will be (WIth a little more to the north), with a box visible around Rome of what 5000x5000 tiles covers.
On our original system, all tiles would be active all the time. However, thanks to The Programming Guru, we've found a way to unload unused areas of the game, which saves a lot of stress on RAM.
We're going to split the gameworld into "Regions". These regions are 5000x5000 tiles. These regions are then split into "Areas", which are 50x50 tiles. Using this system, any active areas (ie, a player is within) will be loaded, along with every area that is one area away from the active area! All other areas will be unloaded.
The below image is roughly how the gameworld will be split (The areas aren't to scale, however the Regions are).
"So, you mentioned crafting ingredients..."
Yes, this is one of the more interesting parts of The Ancients.
Every item will have a history, of sorts. It will have a creator and will have come from somewhere. They will be individual items. There won't be shops with infinite red and blue potions that will magically fix you, there won't be a shop with a sword for 200 Gold that you can a million times.
The game will start only with natural items; fish, berries, ores, lumber, so forth. Any crafted items (Salves, weapons, armour, cooked food) will be generated by NPCs who does it for a living.
Of course, there are a few exceptions; the world didn't start in 200BCE (which is when the game begins), so we'll have to "backtrack" a few years to generate some older goods, such as rusted swords and family heirlooms. There are also some items that may be hand-made (Such as artifacts).
We also have some more very interesting ideas still being fleshed out and as a result we don't want to divulge on these till they're set in stone, so to speak.
"So this game is free? When can I play?"
Regretfully, no. However, it'll be relatively cheap and a one-time payment. No subscription, no in-game stores to buy something that poorer folk have to spend months grinding for.
You pay for the game, you receive the game and you play. Simple as that.
We intend to have an Alpha at some point, though we haven't discussed this in depth as of yet. The Release Date is also ambiguous at best, as we are working on this day-by-day. If we were to set a release date, we would have to conform everything around this. If we were running out of time to release the game by then, we'd have two options: Cut back on some features or push the Release date...
And I personally dislike the idea of either of these.
Suffice to say, however; we are aiming to get this out as soon as possible!
"If this game is a one-time payment, how are you going to pay for Hosting costs for the server and the website? What are you hiding?!"
We aren't hiding anything! You pay once for the game, and that's that. We hope to include expansions in the future to new countries, but I can promise you there will be tons of gameplay available in Italy alone.
The Ancients aims to be more than an MMORPG, but an enthralling sandbox-simulation world, where we provide the tools and the players build - or destroy - the world, alongside currently-existing predicaments of 200BCE.
As for hosting costs, I'll be hosting the Server (For as long as my home Internet can handle the playerbase) at home and the website is currently on a Free webhost. As such I'm paying for this out of my own pocket. Hopefully an injection or two of donations will help with these hosting costs, but I can otherwise support it myself.
First and foremost, let me introduce myself. My name is Niall, but call me Lightning if you wish. I'm the programmer which has recently joined The Ancients. For now, I'll give you an update as to where I am now, but don't worry, I won't bog you down with all the little details! I'll let you know what I've done so far, what I'm doing now, and what I plan to do in the future, and also some ideas that I would like to play with if at all possible.
What I've done so far
Item Editor: This is where all of the items are created. I've taken a lot into consideration with this - resulting in dynamic item files, which do not waste disk space holding blank data.
Small client and server programs: These basically act as the 'terminals' of communication in the game. The player runs the client, and the server handles most other things. Along with this, I've also created a nice data buffer class which groups chunks of data together which can be read easily.
Client/Server-side communication functions: Once the data has been received, the packet header is read and a specific function is then run. This keeps the code nice and modular, which makes it a lot easier for me when it comes down to debugging and tweaking.
Client Login Menu: Basically what it says on the tin. All you need to do is provide your username and password. If you don't have one, just click the "New Account" button underneath the login interface.
Account Creation Menu: This is where you create your character. This is nearly done, but as you can probably imagine, coding UI for 4 days straight can start making you drool over your keyboard a little.
Basic Map Editor: This is where the developers create the world. Through a selection of 10 layers, a believable environment can be created. This is currently being upgraded, to deal with memory issues.
What I'm doing now
Updating the map editor: As The Ancients requires a massive landscape, the memory consumed will start to increase to unbearable amounts. I'm currently re-modelling the way the server and client handles maps, so everyone playing will enjoy a better experience, without lag or slow response times. Another pro with this is that the client will not need to keep any map data client side, reducing game download times and disk usage.
Finishing the character creation menu: Once I have the maps out of the way, I can finish the character creation. This will lead nicely into the game, where I can then build upon other client-server communications.
What's in the future
Basic world interaction: The player can pick up items on the floor, chop down trees, mine rocks etc.
A whole host of other editors: These include a global editor for most crafting skills, such as Smithing, Cooking and Baking.
These will also come with custom-defined cooking times. Don't leave your food cooking for too long, as it will become burned, and overall quality will decrease. Likewise, not cooking your food for long enough will also lower the products' quality, but may also lead to other side-effects.
Recoding the server networking: Once I get a decent amount of time out from my studies, I'll be recoding the server networking to IOCP. This will make the server a lot more efficient with processing a multitude of requests, and improve the overall experience of the game.
Some of my ideas
Items with added effects: You could basically describe this as weapon/armour addons in most other online games, which give you stat bonuses etc. I plan to do something along the lines of this, although the addons will be realistic to the item, i.e. Small Swords have a Bleed Chance increase, whereas Two-Handed Swords may have more chance of a Critical Hit or Armour Breaking. These effects will have a small chance to be added to the item on creation. It's not been discussed with Azkanan yet, but the chance may increase the higher the level you are in that particular skill.
That's all from me for now, I hope I haven't bored you to tears.
Until next time,
- The Ancients team.