1. Elemental: Reforged
  2. News

Elemental: Reforged News

Dev Journal #17: New vs. Remaster

[p]While this game is a remastering of the Elemental games (War of Magic + Fallen Enchantress + Sorcerer King) we are also keen to make sure there is new content for players to enjoy.[/p][p]With Beta 1 we did add a lot of new quests, units and items. But those kinds of things can be tricksy for an experienced player to know if they are new or just things that they didn’t see before.[/p][p]The improved tooltips, UI, hot keys, etc. are probably not that noticeable to someone looking for something new in the first 5 minutes of play.[/p][p][/p][p][/p][p][/p][p]So what would be something you, a player of either previous Elemental games OR other games in the genre, would like to see in the first 10 minutes of play?[/p][p] [/p][p][/p][p]I have some ideas.[/p][p]We don’t want anything on the first turn, but we do want to do more with Dynasties. So at various Fame Levels, we could bring up a Dynasty tree where you could pick traits that could affect your entire civilization. We had started this back in the original Elemental and the only bit of that left is the blood from your particular faction.[/p][p][/p][p][/p][p][/p][p]The idea is that you could pick up various traits for your entire dynasty. Some might just be a stat buff for yourself. Others might increase intelligence or bravery that would be useful for quests or in diplomacy. Fame would then only be used for this rather than giving you free champions (a dynasty choice might give you a champion but you wouldn’t just get a free champion because your fame hit some number).[/p][p]So what say you? You like this or is there a consensus on something else people would like to see in the first 15 minutes of gameplay?[/p]

Dev Journal #16: The Road to Beta 2

[p]As I write this, we’re putting together the first Preview of Beta 2. Beta 2 will have 3 major new changes:[/p]
  1. [p]Steam Workshop support for modding[/p]
  2. [p]First pass at localization[/p]
  3. [p]Dynasties[/p]
[p]Let’s see where we’re at.[/p][p][/p][h2]Localization[/h2][p][/p][p]For Beta 2, we are going to focus on 3 languages: French, German and Spanish. This is because they don’t h ave as many unique characters as say Russian or Chinese. Baby steps.[/p][p]For Beta 3, the focus is going to be on Russian, Chinese, Japanese, Korean, Polish, Portuguese, along with other languages based on popular demand.[/p][p]Preview 1 of Beta 2 won’t automatically launch the game in a player’s language. That is because while we have localized the game, the amount of bugs due to cut off text is just too much to have it default to this.[/p][p]Case in point:[/p][p][/p][p]See the title? It’s cut off. We need to update the screen to give it more space.[/p][p][/p][p][/p][p][/p][h2]Modding[/h2][p]On the modding side, not much is going to be in Preview 1. It’s been set up so that I can now start to upload mods. But the way it’s going to work for Beta 2 is that you’ll be able to make a mod, press a button to get the file dialog box to upload it, put in some tags and it’ll go into the correct area. We’ll be iterating on this so that it’s easy to manage these mods as we suspect there’s going to be a lot of them.[/p][p][/p][h2]Dynasties[/h2][p]Dynasties aren’t in Preview 1, they missed it by “that much”. This is because of a design change we made. As some people have noticed, we actually are ending up with too many champions in the game. We really need to get the Essence system in. That’s the 0 you see at the top of the screen. Hint: It shouldn’t be 0.[/p][p]The way it’s supposed to work is that you, the player, start with about 10 essence. When you recruit a champion you have to imbue them with your power. This is what lets them be champions and not just regular soldiers. Similarly, while your dynasty will produce children with their own traits and such, turning them into an in-game champion will cost 1 essence. Now, through the course of the game, there will be other things to spend essence on as well as other things that can increase essence, but this mechanic is intended to prevent…um…breeding an army. 🙂[/p][p][/p][h2]Final Touches on Preview 1[/h2][p]We are still putting in final touches for Preview 1. Right now, the focus is on making the game less buggy and the localization and modding. There’s a lot of AI work and balancing work to do. Thanks to your feedback we know exactly what needs to be done.[/p][p]Stay tuned![/p]

Dev Journal #15: So viele Sprachen

[p]The original Elemental: War of Magic was not just “English-only”. It was hard coded into English in such a way to make it nearly impossible to localize it. Under the covers, the game and the underlying engine, Kumquat, uses char * everywhere. This means that all text is byte-oriented, single-code unit that only works nicely with ASCII. Even German is tough because of ä ö ü ß and so on.[/p][p]And our code is full of toupper(myText) which can only handle A-Z. The code was full of sprintf().[/p][p][/p][p][/p][p]In short, localizing this game has been a monumental effort. Let me walk you through it.[/p][p][/p][h2]Step 1: You have to get the strings out of the C++ code as well as the data code.[/h2][p]This involves going through hundreds of thousands of lines of code and finding where we inserted things like “It smells kind of bad” right inside a C++ file or a .XML data file and then putting it in a string table like this:[/p][p][c] Banner of the Brave [/c][/p][p][/p][h2]Step 2: You have to deal with variables[/h2][p]So we used sprintf all over the place in C++. That means the code assumed that variables would be in a certain order and in a certain format, but different languages have different grammars, so you can’t assume “Must have a Intelligent stat value of 3.1” will be in that order. Lots of languages would have that flipped.[/p][p]So you have to develop a system in which you have variable replacement and, again, go through the hundreds of thousands of lines of code and find every place we did that.[/p][p][c] Must have a {STAT_NAME} stat value of {FLOAT_0} [/c][/p][p]And if you’ve played the game, you have probably seen places where we at least got the string into a table but we didn’t put in the variable replacement code.[/p][p][/p][h2]Step 3: You have to switch from char* to Unicode-safe text[/h2][p]Oof. This has been hard. This means every UI element, tooltip, error message, status line, etc. has to be found and redone in a new set of engine APIs don’t rely on char*.[/p][p][/p][h2]Step 4: You have to choose fonts that can actually render these characters[/h2][p]Our original fonts supported just a few hundred types of characters. But it doesn’t have all of the aforementioned German characters or French and don’t get me started on Polish, Russian, Chinese, Japanese, Korean, etc.[/p][p]And there was a reason why we couldn’t have even think of doing this back in 2010. These character atlases consume hundreds of megabytes of memory.[/p][p][/p][h2]Step 5: You have to update your controls to handle very long words[/h2][p]I don’t just mean German. Chinese and other languages don’t have spaces which is a giant challenge for an engine that relies on word-wrapping via a space to solve all its problems.[/p][p]你好欢迎来到这里[/p][p]This has no spaces but is a full sentence “Hello, welcome here.”[/p][p]Not to mention four-character idioms, different metaphors for strength, bravery, luck, misfortune. In a fantasy game, there’s a lot of nuance and thus you can’t just randomly add spacing to fix your word wrapping issues.[/p][p][/p][h2]Step 6: Grammar Rules[/h2][p]Gendered Nouns, Plurals, where articles need to be placed. We probably won’t make it to this step but instead leave that to modders (language packs will be in the Steam Workshop for those who want to improve on what we do).[/p][p]So if you see a character say Hallo, ich bin sehr glücklich für das Essen machen in der groß Haus heute! We’ll do our best to fix that since German is one of the officially supported languages.[/p][p]But on the other hand, if you’re Greek, you can happily write «Γεια, εγώ είμαι πολύ χαρούμενος για το φαγητό να κάνω στο μεγάλο σπίτι σήμερα!» knowing that you are truly showing the world your expertise in Greek…[/p][p][/p][h2]Where we are at now[/h2][p]So we’re pretty close to having a Preview ready to go up. The current plan is to go up next week with Preview 1 of Beta 2 which will have the initial Steam Workshop modding support and our first crude stab at English, French, German, Spanish.[/p][p]We plan to put up an Italian language pack on Steam Workshop as a demonstration on how to make your own language packs to share.[/p][p]As soon as we are confident that we have Unicode working decently then we will start adding Chinese, Russian, Polish, Japanese, Korean.[/p][p]The Dynasty System has been ported but it needs more work. It might be ready by next week, but it’s going to be tight. We’re adding arranged marriages to make it a little more fun and we’re working on having genetically passable traits to characters besides just the usual. We figure if we’re going to have Dynasties we should really open it up.[/p][p]We also have a lot of documentation to do. For example, let’s say you want to make a quest. How do you test it? We need to have ways to make it easy for people to try out their stuff (like having a fun map where you put your whole campaign on to try it out).[/p][p][/p][p][/p][h2]Final Thoughts[/h2][p]We are so grateful to you guys. It has been really fun working on this with you.[/p][p]It still blows my mind that after 15 years, we have the opportunity to revisit all this. It’s pretty crazy to think that the same individual who coded the original Dynasty system in 2008/2009 is now able to bring it to fruition. She’s also the one who is looking at getting tooltips within tooltips in there and will be one of the people making the text customization so us old guys can read the text easier.[/p][p]Similarly, the UI in Reforged is the same artist who made the original UI in War of Magic, Fallen Enchantress and GalCiv III/GalCiv IV. We have purposely kept the UI pretty toned down so that it’s easy to make changes to it. The UI will be moddable too btw. It’s just PNGs and a text file for layout.[/p][p]More to come. Stay tuned![/p]

Dev Journal #14: In a Sea of Bugs

[p]Have you ever had a home project where you’re dealing with “imperial” units and “metric” units at the same time? The wrench looks like it will fit but it’s just…slightly different.[/p][p]That’s the world of Elemental this past week. We have War of Magic, Fallen Enchantress and Sorcerer King. Each of them have quests and goodie huts and units and 3D assets that are… almost the same, but not quite.[/p][p]Guess what happens when you have a unit with just one more animation annotation than what the system expects. It crashes. And we have had a lot of that. And, of course, with hundreds of units, many of which won’t appear in a given game, it doesn’t show up unless you are the winner of a horrible lottery. [/p][p]So, that is what we have been focused on for the past couple weeks. Fixing bugs.[/p][p][/p][p][/p][h2]Beyond Bugs[/h2][p]If Beta 1 felt a little bit like Elemental: Fallen Enchantress with slightly better visuals, Beta 1A will be the first version that starts to show some real gameplay differences. The Crafting was already in Beta 1 but now there’s a lot more to do with it. Champions are now on the map to be recruited. The AI has gotten some attention. The number of quests has more than doubled. There are a lot more items in the game. The visuals have taken a noticeable (We hope) step up. There are new units in the game. And the framerate, on the typical setup, should be substantially better as we lean into caching memory more.[/p][p]In short, while bug fixing crashes and memory leaks the game also made some substantial gameplay improvements as well.[/p][p][/p][p][/p][h2]What’s Next[/h2][p]We expect to have Beta 1B ready soon. As in, possibly next week, at least in Preview form. That will continue the bug fixing of course but also, we hope, the first signs of localization. Bad localization. Bad as in “Ich sprechen Deutsch.” But it is my understanding that people from Germania like strategy games. We’ll also be working on work for Francia, Spania and other languages that don’t involve special characters before we jump into… Russian, Chinese, Japanese, Korean, etc. Languages that won’t take kindly to char szMyMonsterString\[255];. [/p][p]Our top priorities, AFTER fixing bugs are:[/p]
  1. [p]Localization[/p]
  2. [p]Modding[/p]
  3. [p]Dynasties[/p]

Dev Journal #13 - Overwhelming Response & Technical Foundations

[h2]THANK YOU![/h2][p]We're shocked and grateful and humbled by the community response to Elemental: Reforged. In the first week since Beta 1 hit Early Access, we’ve hit wishlist numbers and sales approximately 6X higher than our most optimistic projections. The game is already in the top 1000 overall wishlists.[/p][p]When we started working on this a few years ago, we were just really doing this for ourselves. A kind of therapy :). So this has all been overwhelming in a good way.[/p][p]Your support means I get to steal er borrow er assign more engineers and artists to the effort.[/p][p]So let’s talk about the exciting world of bug fixing.[/p][p][/p][h2]This Week's Focus: Bug Fixing and Memory Leaks[/h2][p]With Beta 1 now in players' hands, this week has been all about stability and polish. Our primary focus areas have been:[/p][p][/p][h3]Bug Fixes and Memory Leaks[/h3][p]We've been systematically hunting down and eliminating memory leaks and various bugs that emerged during early testing. One particularly interesting challenge we've encountered is dealing with race conditions that never manifested on older hardware. Modern systems are so much faster than the machines we originally developed for that timing-dependent issues which were effectively "hidden" by slower processors are now surfacing. It's a fascinating reminder that performance improvements can sometimes reveal bugs that were always there—just waiting for the hardware to catch up.[/p][p][/p][h3]Localization and String Tables[/h3][p]Before Beta 1, we made great strides in transitioning the game away from hard-coded strings to proper string tables. This week, we've continued that work with a critical focus: variable ordering for different languages.[/p][p]Here's the challenge: In English, you might see:[/p]
[p]"You have hit the bandit for 5 damage and taken 3 in return."[/p]
[p][/p][p]But in other languages, the natural word order might require those numbers (5 and 3) to appear in completely different positions within the sentence. We need a robust system that allows translators to reorder variables while maintaining grammatical correctness in each language. Getting this right is critical for the game's long-term success and ensuring players around the world have an authentic, high-quality experience.[/p][p][/p][h2]The Road Ahead: UI Modernization[/h2][p]One of our major ongoing initiatives is modernizing the game's input systems. Currently, too many actions require mouse clicks on specific buttons and UI elements. We're committed to ensuring that players can:[/p][p]- Navigate and control everything via keyboard
- Use game controllers for full gameplay
- Avoid being forced into mouse-driven interactions[/p][p]This is a substantial undertaking and will be an ongoing challenge, but it's essential for accessibility and player comfort. We want Elemental Reforged to be playable the way *you* want to play it.[/p][p]The original Elemental was the first game we made to support the detailed breakdowns of stats in tooltips. Internally we call them “Chicks” (named after Tom Chick, a well respected journalist, writer and thought leader). We’re expanding on this now that we have more resolution to work on.[/p][p][/p][p][/p][p]We also plan to add tooltiips within tooltips as well as some sort of Shafer button (both concepts popularized and/or invented by Jon Shafer, the designer of Civilization V and Galactic Civilizations III). The Shafer button is pretty common in games now where the Turn button leads the player to whatever still needs your attention. Our plan is to eventually get that in here but with the addition that you can hold down say the SHIFT key and force it to the next turn. Note if you look at the screenshot we have a bug. Can you spot it?[/p][p][/p][h2]Expanding the Art Team[/h2][p]Thanks to the overwhelming interest in the game, we've been able to bring additional artists onto the project! This means we can accelerate visual improvements and polish.[/p][p]We want to hear from you: What are the top 3 things you'd like to see visually improved in Elemental Reforged? Please share your thoughts in the comments below. Your feedback directly influences our priorities.[/p][p][/p][p][/p][h2]Bringing Back the Past[/h2][p]We also have added around 200+ new quests and Goodie huts and a begun bringing back lots of author Dave Stern’s writing back into the game which was lost due to having to reduce the number of quests for War of Magic (and Fallen Enchantress had even fewer quests than WOM). We also restored some of the units that were removed before War of Magic shipped (and never appeared in Fallen Enchantress) so you’ll be seeing those.[/p][p]We also began adding in the quests from Sorcerer King which were written by author Chris Bucholz, and amazing writer.[/p][p][/p][h2]Little Bit of AI[/h2][p]We haven’t really started on the AI overhaul yet, but we did a few things to make them a bit tougher.[/p][p][/p][h2]Champion Recruiting[/h2][p]The Champions are back on the map! As you gain fame, you can recruit them. You still will get champions offering to join you but it’s far less frequent. Instead, most champions will be the ones you find on the map and win them over to join you.[/p][p][/p][h2]Better Performance[/h2][p]The game already runs pretty well. After all, it was originally made when computers were very slow. But there is always room for cleaning up code. Hopefully it’s noticeable. However, loading the game will, for now, take longer as adding hundreds of new quests and more units and more points of interest means loading up the XML will take longer. We’re working on that.[/p][p] [/p][h2]Preview Builds[/h2][p]One thing that we have seen is that the original intention of Early Access has been ruined, imo, by studios using it as a late development demo or marketing effort rather than the original idea which was to bring players on the journey of development, warts and all. Which is a real shame. Thankfully, most people do realize that these are early betas and intended a such. With finite development resources, the point is to work with the fans to determine where those resources go and that’s where Early Access goes.[/p][p]Nevertheless, we also need to recognize the reality that many, if not most, gamers have a limited tolerance for bugs and instability. Therefore, we are going to create a Preview Branch (“Even buggier”) branch that shows off a lot of new features and improvements that might be even buggier than the main branch. These builds still go through QA so they’re not untested. But they will have things in them that we are trying out that might prove to have been dumb ideas and they will have more bugs than the main version.[/p][p]For example, if we’re adding 200+ quests, we have obviously not tested them all yet. They should work, but a treasure might not show up or an icon might be missing. But through it, we’ll find out what kinds of quests players tend to like more and would like more of.[/p][p][/p][h2]Just the Beginning[/h2][p]I was asked what the long-term plan is for this game. My answer is that the plan is to keep actively working on this game for as long as there’s a reasonable number of people playing it, which I suspect will be many years.[/p][p]I’d like to keep early access short. Get the bugs out. Clean things up. Polish. Balance. Make the AI better. Etc. I don’t know how long that will take, the game is pretty buggy. But once that’s done, you put it out there and then we keep doing updates for the next several years. That’s the plan![/p]