Author Topic: Empires of Eradia: The Cataclysm of Chaos - Alpha V46  (Read 91052 times)

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V43H2
« Reply #225 on: October 05, 2020, 11:13:57 PM »
Oh hey, good that you're keeping up with this. I missed like 3 updates.

I should probably check the forums more regularly. I've been a bit spotty about that as of late, though that may be due to broken notifications.

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V43H2
« Reply #226 on: October 06, 2020, 05:34:48 PM »
Yep, still chipping away at it. V44 is nearly ready for consumption (have a bit more UI cleanup, some balancing of numbers, and then bughunting run). Then V45, will be a more technical focused release, as I implement an Event Handler and Dispatcher into the game. That might take a while; codebase is coming close to 30,000 lines of code.

To be fair, not a whole lot has happened on the forums in the past few weeks. I think the gog release of Outpost 2 has put a damper on a lot of projects, as those projects relied on the old exposed code, and now have to be somehow updated to the new form.
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44
« Reply #227 on: October 09, 2020, 12:54:00 AM »
New update is finally ready for consumption. Link = http://www.mediafire.com/file/kq93kd8a3owgdmy/Binary+V44.zip/file
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3214
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V43H2
« Reply #228 on: October 09, 2020, 10:56:44 AM »
To be fair, not a whole lot has happened on the forums in the past few weeks. I think the gog release of Outpost 2 has put a damper on a lot of projects, as those projects relied on the old exposed code, and now have to be somehow updated to the new form.
The mission development API is what it is, so there's no "new form" that anything needs to be updated to.  If anyone wanted to change it, they'd need to have access to the OP2 source code, and then also access to the source code for all the base missions, since those would also need to be updated to work with any hypothetical new API.
Also: Speak for yourself.  I've been quite busy.
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44
« Reply #229 on: October 11, 2020, 10:53:56 AM »
The GOG release had implications for the main game package, though that got sporadic attention at best. The other projects have generally been quite careful about avoiding potential copyright issues. The nature of the GOG release also avoids potential binary compatibility issues. I get the sense they no longer have the source code, so they're limited in what they can change. It would be a huge amount of effort on their part of break binary compatibility in such as way that new missions or addons would be affected.

I suspect any lull in activity is just the periodic ebb and flow of how things go here.

The OPHD project has had quite a bit of activity over the past year or so. Mind you, a lot of that discussion happens over on Discord, rather than on the forums.

Btw, you should drop by on Discord sometime. (Do we have an official Discord thread or link anywhere?)
(Edit: Found a relevant thread link: Topic: Discord question)
« Last Edit: October 11, 2020, 10:56:32 AM by Hooman »

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44
« Reply #230 on: October 11, 2020, 11:12:52 PM »
@Sirbomber; I'm always busy.

@Hooman; I didn't know OPU had a discord.
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44H1
« Reply #231 on: October 13, 2020, 03:21:20 PM »
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44H2
« Reply #232 on: October 20, 2020, 12:56:52 AM »
Another hotfix is ready for player consumption = http://www.mediafire.com/file/qcx870gfk5pwsf9/Binary+V44H2.zip/file

Fixes a variety of bugs and some other changes. Ingame changelog tells all!
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44H3
« Reply #233 on: October 20, 2020, 02:51:56 PM »
A third hotfix is ready, after further feedback from players, fixing additional bugs.

Link = http://www.mediafire.com/file/cxadj5nicbhkdts/Binary+V44H3.zip/file
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44H5
« Reply #234 on: October 22, 2020, 04:43:59 PM »
Two more hotfixes, close together, so didn't bother with uploading the 4th. But here is the 5th!

Link = http://www.mediafire.com/file/tdmo5x0kjkpj6c4/Binary+V44H5.zip/file
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V44H7
« Reply #235 on: October 24, 2020, 12:30:13 PM »
Got more feedback, so heres the latest hotfix.

Link = http://www.mediafire.com/file/xcqwpguvq6lgi93/Binary+V44H7.zip/file
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V45H10
« Reply #236 on: January 29, 2021, 05:08:35 PM »
After almost 4 months, V45 is finally ready for player consumption.

https://www.mediafire.com/file/edue2cemkljp296/Binary+V45H10.zip/file

Link to 3 Month Update (technically 4.5) = https://www.reddit.com/r/roguelikes/comments/l8cv1k/empires_of_eradia_the_cataclysm_of_chaos_v45_3/

Link to 2020 Retrospective = https://www.reddit.com/r/roguelikedev/comments/l8zlvl/2021_in_roguelikedev_empires_of_eradia_the/

EDIT: 10th hotfix

===========

New Changes to V45:

You can control the game exclusively with the mouse or the keyboard, if you so desire. I suggest using a bit of both though.

I've tried to give support for Azerty keyboards. Simply switch the keybinding layout in the Ingame Menu (hit Esc when ingame).

I've done a severe optimization pass on AI, Rendering, Turn Processing, Looting, and Combat Code. The game now more easily and more consistently maintains a solid framerate, even with hundreds of foes running around.

I've implemented a new Technique system, with redesigned Techniques. Each has two mastery unlocks, one at rank 5 and one at rank 10, with a max of rank 10. With the Mastery Unlocks and changes to combat code, each Technique is uniquely useful for handling different kinds of situations.

I overhauled the Root Menu (which has all the game's keybindings in one handy menu) and made sure that things worked consistently in it as out of it. In V44 sometimes things didn't work correctly.

I implemented a Round Reports menu, that keeps track of the 20 most recent game rounds. Each report gives detailed information on what occurred that round and it stores any messages, produced in the message log, for that round. That way if the message log overflows, you will never miss an important message again.

I completely rebuilt the AI pathfinding code, completely rebuilt the Rendering code, and completely rebuilt the Turn Processing.

I've added a new Enemy Scaling system, so that enemies scale a bit better and doesn't eat up a ton of processing time to do it. The system is now quite streamlined, taking very little time at all.

I've implemented a brand new system of Traps. Each spawns with three properties, and each of these has 3 options, resulting in 27 different combinations of traps. Some are pretty scary now, while others are more situationally scary. Also this release sees the implementation of the Explosive property and the Sentry property, mentioned way back in time (I think I first tried implementing them in V32 or something)

I've implemented Elemental Bombs; a way to hurt your foes when out of Energy and are specifically designed for weakening enemy defenses. So if you find a particularly tough foe, using an Elemental Bomb on them first, will significantly reduce the number of rounds needed to kill them.

I've Implemented Quickstrikes, which replace the old bump, quickshot, and quickzap, rolling them all into a single attack. The active quickstrike is based on the active barrier and thus which attribute is used to boost the stats of the Quickstrike.

Control scheme has changed, with a new set of keybindings. The mouse LMB allows you to either attack a location, move to that location (if adjacent), or if you click on yourself, wait a turn. The RMB now brings up the Root Menu.

You now have access to a Keyboard Cursor, and the Cursor remains always active. Can switch easily between Keyboard and Mouse Cursor. For Qwerty, you control the keyboard cursor with qweadzxc keys. The S key functions like LMB now. Numpad still is used for movement.

I created a new Satchel interface that only displays the items you currently possess.

I implemented a new and improved Threat System that is easier to understand and allows a lot more build freedom. You can thus cast spells with heavy armor now, if you want.

Do note: The tutorial has been disabled. I plan on implementing a better one in V47. The old one broke, when I did the overhaul of the current codebase, so its currently non-functional (which is why it got disabled).
« Last Edit: February 03, 2021, 01:27:28 PM by lordpalandus »
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #237 on: May 21, 2021, 05:07:48 PM »
Well, it took an absurd amount of time, about 3.5 months, but it is finally complete and ready for consumption. Link = https://www.mediafire.com/file/xupuct8wyvl9a9v/Binary+V46.zip/file

The changelog for it is massive, and you can view it ingame, if so inclined. I'll be working on the 3-month update, covering why it took so long, and I shall post it here.

3-Month Update = https://www.reddit.com/r/roguelikes/comments/ni51gm/empires_of_eradia_the_cataclysm_of_chaos_v46/
« Last Edit: May 21, 2021, 05:55:22 PM by lordpalandus »
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #238 on: May 22, 2021, 10:08:15 AM »
Good to see you posted an update.


I was just browsing through the source a bit. I notice you have a nice data driven design. I approve of that approach.

I believe it would be possible to use a more terse syntax for some of the data definitions. For instance, I was looking in _RECIPES.py, and noticed the function used to initialize LIST_Weapons_Recipes. You could potentially fully initialize the list when you define it:
Code: [Select]
LIST_Weapons_Recipes = [
    Crafting_Recipe('Metallic', 100, 'Equipment', 'Longsword'),
    Crafting_Recipe('Metallic', 100, 'Equipment', 'Waraxe'),
    Crafting_Recipe('Metallic', 100, 'Equipment', 'Warhammer'),
    Crafting_Recipe('Metallic', 100, 'Equipment', 'Glaive'),
    Crafting_Recipe('Metallic', 200, 'Equipment', 'Greatsword'),
    Crafting_Recipe('Metallic', 200, 'Equipment', 'Greataxe'),
    Crafting_Recipe('Metallic', 200, 'Equipment', 'Greathammer'),
    Crafting_Recipe('Metallic', 200, 'Equipment', 'Halberd'),
    Crafting_Recipe('Metallic', 100, 'Equipment', 'Crossbow'),
    Crafting_Recipe('Both', 50, 'Equipment', 'Dagger'),
    Crafting_Recipe('Both', 100, 'Equipment', 'Spear'),
    Crafting_Recipe('Both', 50, 'Equipment', 'Nailer'),
    Crafting_Recipe('Both', 50, 'Equipment', 'Slugger'),
    Crafting_Recipe('Both', 50, 'Equipment', 'Shotgun'),
    Crafting_Recipe('Both', 50, 'Equipment', 'Slicer'),
    Crafting_Recipe('Organic', 100, 'Equipment', 'Stick'),
    Crafting_Recipe('Organic', 100, 'Equipment', 'Sling'),
    Crafting_Recipe('Organic', 200, 'Equipment', 'Staff'),
    Crafting_Recipe('Organic', 100, 'Equipment', 'Wand'),
    Crafting_Recipe('Organic', 100, 'Equipment', 'Rod'),
    Crafting_Recipe('Organic', 100, 'Equipment', 'Scepter'),
    Crafting_Recipe('Organic', 100, 'Equipment', 'Ankh')
]

That eliminates all the repetitive .append calls. It also eliminates repetitive assignment to the Recipe variable.

One slight difference is that a full initialization means the contents will always be exactly what you specify. The existing code, using .append, would produce an enlarged list each time it was run. That might be bad if you accidentally run the function twice and duplicate the contents of the list. On the other hand, if you're filling the list with other data elsewhere, it may make sense to append a particular list of entries, rather than reset the list to a fixed set of entries.

Looks like similar can be done for the other recipes in that file, potentially drastically reducing the size of the file. Might also make it easier to update the data in the file later on.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #239 on: May 22, 2021, 10:17:03 AM »
I was looking at the function:
Code: [Select]
def Exploit_Fear(obj):
    if obj.AI.Fear_Duration > 0:
        FearAdvantage = True
    else:
        FearAdvantage = False
    return FearAdvantage

When you assign a boolean in the if/else blocks like that, you could instead assign it the result of the if conditional:
Code: [Select]
def Exploit_Fear(obj):
    FearAdvantage = obj.AI.Fear_Duration > 0
    return FearAdvantage 

Of course with this simplification it becomes easy to return the result of the expression directly, without assigning it to a temporary variable:
Code: [Select]
def Exploit_Fear(obj):
    return obj.AI.Fear_Duration > 0 

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #240 on: May 22, 2021, 10:26:43 AM »
I noticed this block of code:
Code: [Select]
    if x_dist < 0:
        x_dist = x_dist * -1
    if y_dist < 0:
        y_dist = y_dist * -1
           
    if x_dist > y_dist:
        Distance = x_dist
    if x_dist < y_dist:
        Distance = y_dist
    if x_dist == y_dist:
        Distance = x_dist

The first section is effectively computing abs(x_dist) and abs(y_dist). The second section is then computing the maximum of those absolute values. This can be simplified to:
Code: [Select]
Distance = max(abs(x_dist), abs(y_dist))

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #241 on: May 23, 2021, 11:30:28 AM »
Hi Hooman. Yep it finally got a release. Been lukewarm received in most places, but such is life eh.

All of those are pretty good ideas. With the FearAdvantage one though, would it also return a False, if False, or only return True, if True?

The recipes one probably would work better that way. The list is initialized or re-initialized, when data is unloaded/reloaded. So it doesn't usually get changed often.
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2302
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #242 on: May 25, 2021, 08:11:08 AM »
It will return the result of the expression which can only be true or false. It's a way of expressing the same conditions in a smaller amount of code and without if/then chains. E.g., return the result of a boolean expression rather than test the boolean expression and return a boolean type based on the result of the expression.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #243 on: May 26, 2021, 04:45:17 PM »
Indeed, a boolean expression always has a value.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2302
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #244 on: May 26, 2021, 06:11:25 PM »
So question... how do I run this? I don't really want to install the entire Python runtime globally but I imagine this would run fine with a stand-alone interpreter set up. Any suggestions on a reasonably good one for Windows?

Offline lordpalandus

  • Hero Member
  • *****
  • Posts: 817
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #245 on: May 27, 2021, 05:29:21 PM »
The attached zip, at the first post is for those that want to compile (technically freeze) it locally so that they can run it on linux/mac (as I haven't quite figured out how to cross compile builds).

The binary builds come with a local interpreter, of the necessary version for python. They are frozen with the module "pyinstaller", but in order to freeze for a particular OS, you have to run pyinstaller on that OS. Hence, why I haven't figured out cross compilation.

For the binary build all you need to do is download it, unzip it and then run game.exe. Or, if you want to catch any errors that post (should be very few; did spend a month debugging it), run the .bat file instead. All the necessary files are there to run it. There are also some optional font files that you can use to replace the font file in the main directory, in case you want to change the screen size / make things bigger/smaller. Also haven't gotten dynamic resolution / per pixel scaling in yet.
Currently working on Cataclysm of Chaos, Remade.
Link to OPU page = http://forum.outpost2.net/index.php/topic,6073.0.html

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4942
Re: Empires of Eradia: The Cataclysm of Chaos - Alpha V46
« Reply #246 on: May 28, 2021, 03:58:46 AM »
If you're curious about providing packages for different platforms, some of the OPU projects use Continuous Integration servers to build for Windows, Linux, and MacOS. The Continuous Integration builds are tied into the version control system, so the project builds automatically for all platforms whenever someone pushes new code to the repository. We've been using a free account on GitHub to host the central code repository, and a free account on CircleCI for the Continuous Integration builds.

You still have to figure out and write the build pipeline for each platform, though the infrastructure is taken care of by free third party providers.