Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Finnik

Pages: [1] 2 3
1
Programming / Question - how to cleant #includes
« on: July 15, 2022, 08:34:22 pm »
Is there any free tool to check if there are unused includes in some classes in my project? I can only find ReShaper C++ https://www.jetbrains.com/resharper-cpp/ that is not free to use. I don't want to pay $150 for it every year =)

2
Hey!
Could be a rare case, but when I was analyzing code I noticed, that when you `void Production::startItem(Base * b, SavedGame * g, const Mod *m) const` and your project require the craft, it would be removed and deleted. But when we look to `refundItem`, we can see that there is no way to refund the craft in case we abort construction.

I understand how coplicated proper handling of this case, you can stuck with no free hangar space. But may be at least warn the player about consequences?

3
I'm considering if there is a way to define more complex shape for units, like we can define it for tiles. AFAIK, now it's just a cylinder with height, defined with property. But I think there can be a way to define voxel model with yaml ruleset in unit or soldier property
Code: [Select]
units:
  - type: STR_SECTOID_SOLDIER
    race: STR_SECTOID
    rank: STR_LIVE_SOLDIER
    stats:
      tu: 60
      stamina: 90
      health: 30
      bravery: 80
      reactions: 63
      firing: 54
      throwing: 58
      strength: 20
      melee: 12
      psiStrength: 60
      psiSkill: 20
    armor: STR_SECTOID_STANDARD_ARMOR
    standHeight: 16
    value: 15
    standingLOFT: [2, 2, 2, 3, 3, 4, 4, 4, 3, 0, 0]

Numbers define LOFT id's from LOFTEMPS.DAT file (see attachment)
In this case, we can fix some common problems when default collider does not reflect image asset completely. I'd also suggest in this case to keep weapon handob image offset to be still calculated with `standHeight`.
For Instance, that can solve problem, that is highlighted here https://openxcom.mod.io/reavers-fixed-hitboxes
I would also suggest ignore unit rotation for more simple solution. Still, it would help to make new enemies more interesting and help in terms of visual improvement of the game in terms of displaying projectile hits.

4
I thought it might be in scope of OXCE QoL improvement - what about adding action on MMB click for line of `_lstStores` text list to open Pedia state if any (like what we have in purchase/sell states)?

5
OpenXcom Extended / [SUGGESTION] Expanding UFO tracking lost logic
« on: April 28, 2022, 09:49:48 pm »
I've got an idea and I think it can be used in some OXCE mods.
Currently, we have logic that if UFO gets out of radar range, you lose its tracking. But in some mods, like XCF, for example, we have radars with global range (that is balanced with very small detection chance), so basically, we can't lose tracking. In addition, not tracking chance is scriptable, so we can create interesting features around it.
I think losing tracking and searching for UFO with crafts is a fun mechanic, so I'd suggest some logic for UFO in `time30minutes`, that would give UFO chance to break tracking if chance for its detection is very low. OFC, we can define that "very low" as an integer value in mod, that would be also a feature toggle.

6
Currently, we have rather simple logic to calculate consumed base's living space. That's fine for vanilla, but in OXCE mods we have a lot of pretty different creatures, from tiny AI-controlled drones to giant monsters.
What do you think about adding a new property to define using space? For instance, we could make `requiredLivingSpace: int`, from 0 for tiny drones to 4 for monsters, with 1 as default value.
I think it is not so hard to add  :)

7
From the Ashes / From the Ashes META
« on: April 21, 2022, 06:04:19 pm »
This tread is created for players to share their insights, tips and efficient tactics.
Because FtA has a lot of new mechanics, I think it would be useful not only for players, who want to improve their performance or stuck with a problem, but also for me to take those insights into account for making better game balance!

8
From the Ashes / FtA game engine
« on: April 17, 2022, 09:16:00 pm »


As you might know, FtA uses own engine, that is a fork from OpenXcom Extended repository.
Two years ago I decided to develop my own fork because the goals of my project are different from those of OXCE.
The main value for the FtA project is to provide a completely new gameplay experience within a classic game. In terms of visuals, I'm doing my best to make it seem like my game is some kind of DLC (in the modern sense) to the original game. It would be ideal if a person who hasn't played the original game couldn't tell the difference between the content of the original game and the new one. As for new features - I don't want to stifle source code changes by supporting backward compatibility for other mods.

From a modder's point of view, my engine only differs from OXCE because of the new rollset properties. Although I don't strictly adhere to the doctrine of minimizing unmodified changes compared to vanilla as OXCE developers do, when run with default settings FtA engine is compatible with all OXC/OXCE mods (as far as I know).
All incompatibilities and the most significant features are protected by mod's base property `ftaGame: true` (default false). Turning on this property opens Pandora's Box, implementing new logic and most mechanics. Some properties start working differently than in OXC/OXCE. I maintain detailed documentation on the project, you can find it on engine repository wiki https://github.com/723Studio/OpenXcom_FTA/wiki
There, I highlight every case of non-standard behavior with value `ftaGame: true`. 
Not all new mechanics are blocked by this property. Additionally, I try to regularly merge with new changes in OXCE, making edits when incompatibilities arise (each time praising Yankes's ongoing refactoring crusade, rejoicing at every change in how existing methods work). So far I've been able to implement all the new features from OXCE, but I can't 100% guarantee that this will continue in the future.
So if you for some reason would like to use my engine for your mod - I'm not against it at all, but please note - I'm developing this engine for my project only, other goals will be secondary for me. If you would like to suggest that I create a new feature, you would need to explain to me why I need this feature in FtA and not in your mod.
Also, I'm not very willing to implement general functionality. For example, I developed a mechanic for reinforcements, and then 6 months later a similar feature appeared in OXCE. Now I have to maintain two solutions at the same time, because they had fundamentally different solutions on a fundamental level, and the OXCE solution didn't work for me. The same thing happened with VIP, now I have two types of VIP in my engine, which have very similar names but work very differently...

Although only about 60-70% of what I had in mind is realized, I am proud of the progress I made over these few years (because I started to change the engine code without knowing how to program at all). I want to say a huge thanks to everyone who has supported and helped me - Yankes, SupSuper, Meridian, Warboy and Ohartenstein, as well as to the guys who are directly involved in the development - Buscher, PedroTerzero, Isotop and Drosan. You rock!

9
From the Ashes / FtA installation guide
« on: April 17, 2022, 03:06:44 am »


I hope that Windows installer, that is distributed on mod.io can cover the most cases. You can get it by visiting https://openxcom.mod.io/from-the-ashes

However, you might want to install it manually, so here I'll describe it in details.

Technically, From the Ashes consists of 2 big parts: engine and content.

FtA engine from user perspective can be handled just like OpenXcom or OpenXcom Extended. Stoddard created Jenkins job for me, just like he did for OXCE, so you can get the latest nighty here: https://lxnt.wtf/oxem/#/FTA
Current stable build is 0.7.1, Windows version can be downloaded with https://lxnt.wtf/oxem/builds//FTA/FtA-0.7.1-2b7ffc82f-2022-04-17-win64.7z
Just unzip it somewhere on your hard drive =)
Bionic Linux version can be downloaded with https://lxnt.wtf/oxem/builds//FTA/FtA-0.7.1-2b7ffc82f-2022-04-17-bionic-x86_64.7z
Currently, I don't have any Mac OS, Android and iOS versions. AFAIK, Mac OS can be created just fine, I just don't have Mac  ;)
In case you would like to get source code, it's available on GitHub: https://github.com/723Studio/OpenXcom_FTA
All compiling guides for OXCE should work for FtA as well: https://openxcom.org/forum/index.php/topic,7048.0.html

Content part is just a megamod, it can be loaded from GitHub: https://github.com/723Studio/X-Com-From-the-Ashes/releases/latest
You can install it just like any other OXCE mod, I recommend unpacking it to C:\Users\{user}\Documents\OpenXcom\mods\
This should be obvious, but I still want to say that - FtA as a mod would not work properly if you launch it on OXC or OXCE, you should use FtA engine!

In turn, you can run any OXC or OXCE mods on FtA engine, AFAIK it should work just fine. You might want to do that in order to get some QoL things that I added to my engine.

Ofc, you need to have original game files, just like for OXC/OXCE. Currently, FtA needs to have only UFO. If you are running Windows, store it in C:\Users\{username}\Documents\OpenXcom\UFO
You actually don't need the whole original game, it would be enough if you will paste this OG folders:
  GEODATA
  GEOGRAPH
  MAPS
  ROUTES
  SOUND
  TERRAIN
  UFOGRAPH
  UFOINTRO
  UNITS
 If you use Windows installer, it would ask to define path to files, and if you have X-COM: UFO Defense on your steam account and loaded locally, installer would use path to it automatically. You can get the game from https://store.steampowered.com/app/7760/XCOM_UFO_Defense/

10
From the Ashes / From the Ashes - initial release!
« on: April 17, 2022, 02:25:03 am »


Greetings everyone, I am incredibly excited to introduce my project, X-Com: From the Ashes, to the community!
It is a global conversion to OpenXcom. During the alien invasion, X-COM's initiative failed, alien agents infiltrated the ranks of most major governments, and within a few months, they were placed in a puppet regime. The true motives of the aliens remain obscure. Their hostile activities are skillfully hidden from the public. There is no support from the Council of Funding Nations, and Council members loyal to X-COM are scattered and remain concealed. The player will need to learn how to survive in the new circumstances, conduct an undercover struggle against alien forces, and cooperate with global organizations involved in the conflict.

This project is more than just a mod for OpenXcom, as it uses its own version of the game engine. There are many entirely new mechanics in the game - diplomacy, covert operations, new tactical mission objectives, loyalty, and much, much more. You can see the full list of engine features here: https://github.com/723Studio/OpenXcom_FTA/wiki

Download installer for Windows from Mod.io: https://openxcom.mod.io/from-the-ashes?preview=17bd8b77fdab4b426a1e766383a7e38b
The process is similar to the OpenXcom installation. However, if you have problems with the installation, visit this page for a detailed description of the manual installation process: https://openxcom.org/forum/index.php/topic,10498.0.html

The campaign begins with the player having to defend the X-Com base from an assault of the Men in Black. Then you will need to assess the situation and learn how to use the new opportunities. Many aspects of game mechanics and balance have been changed, giving a fresh experience. However, the gameplay and visual design remain in the spirit of the classic 1994 game.

The game is in development, the current version is the initial release, in a sense it is a "vertical slice" of the game experience. The campaign is limited in time with the first 8 months, after which it will end automatically. While most of the mechanics have already been implemented and a significant amount of content related to the early game has been added to the game, much more is yet to come. Nevertheless, the release is necessary in order to gather feedback and get more ideas and inspiration to keep working.

I would be very grateful for any feedback, bug reports and suggestions. You can share it here or by joining or Discord server: https://discord.gg/aecJUvV4pA
Especially valuable to me is gameplay video, so if you stream your playthrough, it would be great if you could send me the link to it. The Discord server has a special channel for streaming your games, don't be shy, drop by there.
You can follow the development progress on the Twitch channel: https://www.twitch.tv/finnik723studio

Current version is well-balanced for 2ed ("Experienced") difficulty level. You might face some troubles on higher difficulty levels because you will have to learn a lot of new mechanics and discover your own META first. "Superhuman" difficulty now works not how I want it to be, as I want to form an extra challenge here. This would require a lot of effort, and I want to finish general development first.
You might notice some loose ends in story arcs, because it is still WIP.
Also, more engine features coming. We have a new hacking system almost done, and there is a solid concept for negotiation system. Future releases will also include soldier secondary stats, additional battlescape tactical objectives and many more interesting ideas are yet to be developed.
As for content part - I'm planning to focus myself on increasing mission variety for 4-8 month, supporting coming engine features with content and balancing difficulties.
The next big milestone is midgame, where I will introduce another 2 factions and encounters with aliens. I'm planning to finish the most major engine work before this. Currently, engine C++ coding takes like 70% of my time, so I lack of strengths to make huge amount of content I would like to see in the game.

The project would have been unthinkable without the tremendous work that the OpenXcom and OpenXcom Extended developers accomplished before me. In addition, I have borrowed some free content from other authors. The detailed list of credits can be found here: https://github.com/723Studio/X-Com-From-the-Ashes/blob/master/LICENSE.md#credits

Most of the game's content is non-compilation code distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). You are free to share and adapt the materials only for non-commercial purposes and when providing appropriate attribution.
However, some assets were developed by professional artists for a fee specifically for FtA, and I have full rights to it. So if you wish to use the assets in your project, please read the license terms: https://github.com/723Studio/X-Com-From-the-Ashes/blob/master/LICENSE.md#licensing

11
We currently can specify `lowQty`for 0 difficulty and `highQty`for 5th, that assumes linear approximation of enemy count for other difficulties. I would like to suggest a new optional property 'medQty` that would specify Veteran difficulty enemy count, thus we could make nonlinear difficulty rise, with, for example, small grow on beginner-veteran and more rapid on experienced-superhuman. If not specified ('medQty` <= 0) we use vanilla logic.
To me, it looks like a tool to design a more precise balance for missions.

12
Probably, I can also rise another topic:
Currently, modders widely use researches as a progression triggers, very decent amount of researches in many mods are never shown to the player. It's being supported by devs with a very wide API, where you can add research as discovered at the background with arcs, events, deployments. They are used as triggers for arc/event/mission scripts to run campaign logic. We can get researches in YS, which is awesome, and we can disable research. We can interrupt ongoing missions and events with research being discovered. For many cases, it is enough, but I would like to know if that is the desired way for OXCE and you guys would like to keep expanding it.

For instance, I've looked into UFO:AL, they use LUA scripts to process campaign logic. In OXCE we have YS, that already has tags in SaveGame. There we can have any variable in form of integer or string value, not just boolean (is this research discovered?). I had cases where I was needed integer value for mission triggers, and I had to solve it with multiple copies of research and scripts. Also, we are limited to setting trigger variable (research) to false, as we can't set it back to true (disabled researches cant be discovered in any way) I can see it is not a small task and would require to add hooks for, many places where we check or discover/disable researches, but with this we would get a much more flexible system.

13
Due to my project complex mission progression, it turns out I need to specify several researches to be unlocked for both mission success and failure cases. I'd like to know if that can be done in OXCE (if it is a required feature for other modders), or should I do that myself in my branch? I can also make it based on OXCE and commit pull request if desired. AFAIK, it's a pretty small code change.


14
Tools / World Editor request
« on: October 14, 2021, 03:53:20 pm »
I am pretty new to the world editing, but it seems to be the most painful part in the modding. AFAIK, there is only 2 options - Use Volutar editor (sorry, cant find the link to it), or use Falco's tool (https://openxcom.org/forum/index.php/topic,2835.0.html). There are not compatible, as Volutart's editor changes binary data file, and Falco is using ruleset as data format.

I want to make globe a bit more precise to real maps, so I was needed to use background image under data layer. I failed to load background to Volutar's editor, so I chose Falco's tool. It is fun to use, but it is far from perfect. First, it looks like it uses old data format, current OXCE `region` and `globe` data is recommended to store. Again, I am not an expert, but I came to this:
https://github.com/723Studio/X-Com-From-the-Ashes/blob/197d086090f4fcacab4df316d4065b95bc102e2e/Ruleset/globe_FTA.rul
https://github.com/723Studio/X-Com-From-the-Ashes/blob/197d086090f4fcacab4df316d4065b95bc102e2e/Ruleset/regions_FTA.rul

As it has big difference to Falco's export/import format, working brings a lot of pain.

Another problem is that Falco's tool is using cylindrical projection, so the closer you are to the pole, the bigger errors you can make. This makes it's snapping fails, and brings gaps on the game's globe, that are not editable in web:
Spoiler:

Another issue - it is not very precise when it comes to mission zones rectangles, it is very hard to work with small zones.

How do you think, is it worth making the globe editor as part of game engine, like marvelous Ohartenstein's Map Editor (https://openxcom.org/forum/index.php/topic,8711.0.html)?

15
OpenXcom Extended / [SUGGESTION] Patrolling over mission site
« on: October 13, 2021, 12:43:15 pm »
I thought there could be a place to improve QoL. Currently, when you arrive at the mission site, you can choose to patrol over it, in order to wait for the daylight. But when the time comes, the player goes to the craft actions state, then hit "Select new target" and then selects the site that is under the craft. How do you think, does it worth another making another button to avoid selecting destination?

For instance, when we choose to patrol over a mission site, we can make a link between the craft and the mission site. We break this link on 1) new target, but current site was selected, 2) low fuel.
Thus, when we select the craft actions, we could create a new button, that would tell the craft to deploy mission. That would save us a few pointless mouse clicks.

This link would allow us to make another feature - alert the player, that mission site is about to despawn and he or she has to choose return to base or deploy now, as we can't wait any longer. Ofc, both should be hidden under ruleset toggle or option.

Pages: [1] 2 3