Recent Posts

Pages: [1] 2 3 ... 10
1
Outpost 2 Update / Re: Allowing Outpost2 to load any vol file (*.vol)
« Last post by Arklon on Today at 09:16:21 PM »
It would have been nice if this newer op2ext code had been committed overtop of the op2ext project in the SVN repository or Hooman and I told about it before we cloned the subversion repository. I'm starting to understand how Leeor posted 1.3.6 with an outdated version of op2ext.dll. Oh well...
I told Leeor about it when we were putting together 1.3.6, and I thought he said he was going to commit it to the SVN, but I guess that never ended up happening.
2
Outpost 2 Update / Re: Allowing Outpost2 to load any vol file (*.vol)
« Last post by Vagabond on Today at 08:40:40 PM »
Quote
Uhh, you must not be using the latest version of the op2ext code. A while back I changed it so it doesn't use the DEBUG ini setting anymore, among other things like allowing ini mods to call cleanup functions on exit, and moved as much logic out of DllMain as possible. http://arklon.outpost2.net/other/op2ext_1-3-6.zip

Yeah, the op2ext code on GitHub looks out of date. I'd suggest busting out a 3-way code diff/merge tool. KDiff is a decent free one.

It would have been nice if this newer op2ext code had been committed overtop of the op2ext project in the SVN repository or Hooman and I told about it before we cloned the subversion repository. I'm starting to understand how Leeor posted 1.3.6 with an outdated version of op2ext.dll. Oh well...

I quickly scanned the code Arklon posted, and from a cursory pass, the changes look as though they should be doable to merge in with the current work Hooman and I have done.

I've used KDiff before with Mercurial. Oddly, it didn't occur to me that KDiff could be used with any files and not just within TortoiseHg.

I may wait for another pair programming session before working the merge. Let me look at it a little closer and make sure I feel comfortable and understand the new code well enough before committing to doing it on my own.

-Brett
3
Yeah, we've known about this for years, but you need frame-perfect timing to pull it off, so nobody has ever bothered to fix it I think.
4
Hey!

I'm a big outpost 2 player, but I really only play colony games. I found a bug yesterday. I was playing Colony Builder, Plymouth 2. I set a convec to build a common ore smelter, but decided to change the location at the last minute. Construction started, but the convec didn't go into construction mode--and it still had a common ore smelter in it. Effectively, I got two smelters for the price of one. I presume there's a bug the requires frame accurate input to begin construction, then provide a move command to the convec.

I've attached a screenshot of a building under construction without a convec. I've attached my save game files. The game is saved as 'bug' (I'm not sure which SGAME file it is, so I'm attaching all of them).

I'd love to find a way to reliably reproduce this issue. It would change the game so much and open it up to speed running, beating plymouth space ship builder (on normal or hard), or plymouth cold war (on normal or hard).

If anyone is able to better explain what happened, if anyone has a reliable way to reproduce the bug, or if anyone has any thoughts, I'd love to hear from you!
5
Outpost 2 Update / Re: Allowing Outpost2 to load any vol file (*.vol)
« Last post by Arklon on Today at 03:00:35 PM »
* Encapsulate ModMgr in a class.

Currently, the DEBUG section of the Outpost2.ini file is not being destroyed. I've noticed an empty Outpost2.ini file is created in the source code directory when debugging. The DEBUG section is added properly to the game directory on initialization. My theory is that the wrong directory is being used for destruction, but have not tested in code.
Uhh, you must not be using the latest version of the op2ext code. A while back I changed it so it doesn't use the DEBUG ini setting anymore, among other things like allowing ini mods to call cleanup functions on exit, and moved as much logic out of DllMain as possible. http://arklon.outpost2.net/other/op2ext_1-3-6.zip

Yeah, the op2ext code on GitHub looks out of date. I'd suggest busting out a 3-way code diff/merge tool. KDiff is a decent free one.
6
Outpost 2 Programming & Development / Re: Needed Future Projects
« Last post by Arklon on Today at 01:05:06 PM »
Also, I think it would be better to implement some type of high level API to design and build mission files/AI with. Maybe a library that provides binding to Python or some other higher level and easier to use language.
Python bindings for the API were mentioned earlier in this thread. They're a thing being made.
7
Outpost 2 Programming & Development / Re: Needed Future Projects
« Last post by angellus on Today at 11:57:52 AM »
As for C# on Linux, there is Mono. Though there is something concerning about the "Get Mono" heading.  :o

You would want to use .NET Core.

Also, I think it would be better to implement some type of high level API to design and build mission files/AI with. Maybe a library that provides binding to Python or some other higher level and easier to use language.
8
Game Discussion General / Re: Cataclysm of Chaos V8
« Last post by lordpalandus on November 19, 2017, 12:47:02 AM »
Interesting, never heard of it till now. You mentioned you have some experience with it, so a few questions:
1. If you offered the game for free on itch.io, but had it listed for a specific price elsewhere, what incentive would buyers have in paying the full price, when they could just take the free version?

2. Offering a base price and allowing a user to donate more, is a novel idea for game distribution. I wonder how often on average users will pay over the base price. The question I have is, if after you have bought the game at a specific price, can the user go back and donate more to the developer?

3. You mention itch recommends giving at least 15%. What will itch do, if you pay them more than 15%?

Sounds a lot like Steam Greenlight in the later years; a sea of garbage releases. Regardless, thanks for bring itch.io to my attention!

===

Thanks for mentioning the installers. Very useful information.

That is very true, but would need to have a way to host a server to do that. I doubt textadventure.uk would allow me to put a paid product on their servers for people to pay on. Then again I've not asked either. Maybe I should.

Advice is always useful to know, so that I know of the options available to me and allows me to figure out which options to focus on and do more research on. So keep advising away.

Ah good old Jeff Vogel, of Spiderweb Software; his blog posts are always an interesting read. He is one of the first true Indies... before indies were popularized by Steam and GoG, having released his first indie game back in 1997 (Exile 1: Escape from the Pit) I believe. I was introduced to his stuff on an old shovelware CD-ROM that had Exile 3: Ruined World as shareware. Also I beta tested his Avadon 3 on the ipad last October (2016, not 2017)... I wonder if I'll be able to beta test his new Avernum 3...

9
Outpost 2 Update / Re: Allowing Outpost2 to load any vol file (*.vol)
« Last post by Vagabond on November 19, 2017, 12:13:54 AM »
I put a lot of time into the project Today. Made a lot of progress, especially in the Mod Manager class.

Unfortunately, NetHepler is current throwing an exception every time Outpost 2 exits while I'm in debug mode. It doesn't happen when I run Outpost 2 normally without debugging using the newly compiled op2ext.dll. So I think it is maybe related to the working directory. I haven't investigated further than recording the exception details below (see the last commit).

COMMITS
* Add Version Info Resource to project

* Add Version Info Resource files to project and fix array compiler error in VolList.cpp.

 * Current implementation of VolSearchEntry buffer[] was Microsoft specific. Fixed by making VolSearchBufferSize static so buffer could be set to the same size by the compiler on any instance of VolList.

 * Added resource files so the version information can be set inside Visual Studio 2017 and not manually amended later through Resource Hacker.

* Add *.aps files to ignore list

 * A binary file designed to reduce load time of resources. Should be produced locally on first compilation of source code.

* Rewrote ModMgr's function GetCurrentModDir() to use modern C++ features

 * Improved error messaging to user when improper command line arguments or switches provided.
 * Started prepping ModMgr.h/.cpp for refactor into a class. (Would like to encapsulate private functions).

I'm not entirely happy with the new code. It is lengthy and not easy to follow when reading through. I think it is an improvement over the last iteration because it removes the deeply nested token search statement. While there are more lines of code overall, they are separated into smaller functions. GetCurrentModDir itself is still too lengthy.

This function could probably be improved by using exceptions, but we are not using exceptions anywhere else. So I limited exception use to just where required when accessing functions in the std library that leverage exceptions.

I'd like to rename ModMgr.h/.cpp to ModManager.h/.cpp. I'm unsure if this would affect c linkage to the function? I don't believe it would though.

Function tested reasonably thoroughly through different failure conditions (bad path, no path, wrong spelled switch, etc) without finding bugs.

* Encapsulate ModMgr in a class.

Currently, the DEBUG section of the Outpost2.ini file is not being destroyed. I've noticed an empty Outpost2.ini file is created in the source code directory when debugging. The DEBUG section is added properly to the game directory on initialization. My theory is that the wrong directory is being used for destruction, but have not tested in code.

* Use absolute directory of Outpost.exe for calls to access/modify outpost2.ini

Previously we were using the current working directory to access outpost2.ini. I believe the working directory is being changed to the directory of the source code when attaching the debugger and attempting to debug. This is causing problems with applying the addons netfix and nethelper.

Originally, when using a fresh copy of outpost.ini from the repository, NetFix would load on the first attempt. On subsequent debug sessions, NetHelper would not load. Also, a file named outpost2.ini with nothing inside would be created in the source code directory. Hooman witnessed this with me on our last pair programming session, but we got it to work with some fiddling, so we moved on.

Now, whenever op2ext's dllmain function is called, the working directory is manually set to the location of the Outpost 2 executable. This fixed all issues with NetFix. I also set all calls inside op2ext attempting to access/modify outpost2.ini to the proper absolute directory instead of relying on relative directories.

I think it would be best not to rely on the working directory for any calls.

Unfortunately, NetHelper.dll is currently throwing an exception after exiting out of Outpost 2. This occurs before DllMain is called in op2ext.h. My hunch is this may be related to NetHelper attempting to use the working directory set to the wrong location, but I haven't examined anything to verify that.

=== Exception Details ===

Exception thrown at 0x25005E9C (NetHelper.dll) in Outpost2.exe: 0xC0000005: Access violation reading location 0x000000B8.

DISASSEMBLY INFO
25005E92  call        25005A0E
25005E97  mov         ebx,eax
25005E99  mov         eax,dword ptr [edi+10h]
25005E9C  mov         esi,dword ptr [eax+ebx*8]
25005E9F  push        ebx
25005EA0  lea         eax,[ebp-8]
25005EA3  push        eax
25005EA4  mov         ecx,edi
25005EA6  mov         dword ptr [ebp-4],esi
25005EA9  call        25005D48

CALL STACK
>   NetHelper.dll!25005e9c()   Unknown   No symbols loaded.
    [Frames below may be incorrect and/or missing, no symbols loaded for NetHelper.dll]      Annotated Frame
    NetHelper.dll!250066a9()   Unknown   No symbols loaded.
    NetHelper.dll!250068d4()   Unknown   No symbols loaded.
    NetHelper.dll!25006a2c()   Unknown   No symbols loaded.
    NetHelper.dll!25006aae()   Unknown   No symbols loaded.
    NetHelper.dll!250069fa()   Unknown   No symbols loaded.
    NetHelper.dll!250050d4()   Unknown   No symbols loaded.
    NetHelper.dll!25005177()   Unknown   No symbols loaded.
    NetHelper.dll!25005220()   Unknown   No symbols loaded.
    NetHelper.dll!250053e8()   Unknown   No symbols loaded.
    NetHelper.dll!25005521()   Unknown   No symbols loaded.
    NetHelper.dll!2500767b()   Unknown   No symbols loaded.
    NetHelper.dll!25007797()   Unknown   No symbols loaded.
    NetHelper.dll!25007814()   Unknown   No symbols loaded.
    [External Code]      Annotated Frame
    Outpost2.exe!004c781f()   Unknown   No symbols loaded.
    Outpost2.exe!004c772e()   Unknown   No symbols loaded.
    Outpost2.exe!004c4261()   Unknown   No symbols loaded.
    [External Code]      Annotated Frame


Current tasks:

   * Figure out why NetHelper is throwing an exception on closing Outpost 2
   * Figure out what EXPORT void SetSerialNumber(char num1, char num2, char num3) does (or is supposed to do?)
   * Continue adding blocks to single line if statements
   * Refactor order of includes to go from local to standard library
   * Decide how to handle comments on external functions.

-------------------------------------------------
EDIT:

I did some research on Visual Studio, and it does default to setting the working directory to the folder containing the project, not the executable when debugging a DLL with an application in a different directory. I learned how to tell the debugger to use a custom directory as the working directory when debugging. This solved the issues with NetFix, and allowed me to remove the code setting the working directory to the Outpost 2 executable. However, it didn't fix the error explained about in NetHelper.

-Brett
10
General Interest / Re: Motivational quote ;)
« Last post by Zhall on November 18, 2017, 04:34:34 PM »
Taking action trumps everything.

Even if you have no idea what you are doing, if you take action, something will get done.
Pages: [1] 2 3 ... 10