Novahq.net Forum

Novahq.net Forum (https://novahq.net/forum/index.php)
-   Gaming Talk (https://novahq.net/forum/forumdisplay.php?f=273)
-   -   2020 Update: Battletank 1942 (https://novahq.net/forum/showthread.php?t=50388)

Guest001 10-27-2019 06:40 PM

2020 Update: Battletank 1942
 
Though no longer in the pipeline as Battletank 1942 as previously stated BT1942 will now be a self contained map within a broader game concept.

The front end or GUI 1 is incomplete at this point in time but I can show you GUI 2 (below).


http://www.gardenshedproductionsinc....rtalMatrix.png

Guest001 11-09-2019 02:02 PM

Update: Minimum Requirements

Generating specification data for assessment of performance.

Test Bench 01:
Recommended - Win 10 Desktop PC or equivalent Gaming Laptop (Medium Spec)

Code:

Log started: 11/10/2019 3:01:26 AM
Info: Operating System: Microsoft Windows 6.2.9200.0 (64-bit)
Info: Runtime Framework: Net 4.0.30319.42000
Info: Engine 64-bit version
Info: Application type: Simulation
Info: Added resource location 'C:\Dev\version-32015\revision-20498\serial-2019-00101\Project\Bin\Data'
Info: File resource system type 'VirtualFileSystem' to resource group 'General' with recursive option
Info: CPU Identifier & Features
Info: -------------------------
Info:  *  CPU ID: GenuineIntel: Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz
Info:  *      SSE: yes
Info:  *    SSE2: yes
Info:  *    SSE3: yes
Info:  *      MMX: yes
Info:  *  MMXEXT: yes
Info:  *    3DNOW: no
Info:  * 3DNOWEXT: no
Info:  *    CMOV: yes
Info:  *      TSC: yes
Info:  *      FPU: yes
Info:  *      PRO: yes
Info:  *      HT: no
Info: -------------------------
Info: Loading library RenderSystem_Direct3D9.dll
Info: Installing plugin: D3D9 RenderSystem
Info: D3D9 : Direct3D9 Rendering Subsystem created.
Info: D3D9: Driver Detection Starts
Info: D3D9: Driver: \\.\DISPLAY1; NVIDIA GeForce GTX 1050 Ti
Info: D3D9: Driver Detection Ends
Info: Plugin successfully installed
Info: D3D9 : Subsystem Initialising
Info: Driver name: nvldumdx.dll
Info: Driver description: NVIDIA GeForce GTX 1050 Ti
Info: Subsystem: Initialised
Info: RenderSystem Name: Direct3D9 Rendering Subsystem
Info: Physics system is initialized (Driver: NVIDIA PhysX 3.2.1)
Info: GPU Vendor: nvidia
Info: Device Name: NVIDIA GeForce GTX 1050 Ti
Info: Driver Version: 24.21.13.9793
Info:  * Fixed function pipeline: yes
Info:  * Hardware generation of mipmaps: yes
Info:  * Texture blending: yes
Info:  * Anisotropic texture filtering: yes
Info:  * Dot product texture operation: yes
Info:  * Cube mapping: yes
Info:  * Hardware stencil buffer: yes
Info:    - Stencil depth: 8
Info:    - Two sided stencil support: yes
Info:    - Wrap stencil values: yes
Info:  * Hardware vertex / index buffers: yes
Info:  * Vertex programs: yes
Info:  * Max Supported Shader Profile: hlsl
Info:  * Texture Compression: yes
Info:    - DXT: yes
Info:    - VTC: no
Info:    - PVRTC: no
Info:    - 3Dc: yes
Info:  * Scissor Rectangle: yes
Info:  * Hardware Occlusion Query: yes
Info:  * User clip planes: yes
Info:  * VET_UBYTE4 vertex element type: yes
Info:  * Infinite far plane projection: yes
Info:  * Hardware render-to-texture: yes
Info:  * Floating point textures: yes
Info:  * Non-power-of-two textures: yes
Info:  * Volume textures: yes
Info:  * Multiple Render Targets: 4
Info:    - With different bit depths: yes
Info:  * Point Sprites: yes
Info:  * Extended point parameters: yes
Info:  * Max Point Size: 8192
Info:  * Vertex texture fetch: yes
Info:  * Number of world matrices: 0
Info:  * Number of texture units: 8
Info:  * Stencil buffer depth: 8
Info:  * Number of vertex blend matrices: 0
Info:    - Max vertex textures: 4
Info:    - Vertex textures shared: no
Info:  * Render to Vertex Buffer: no
Info:  * Alpha to coverage: yes
Info:  * Fetch4: no
Info:  * Hardware Instancing: yes
Info:  * Depth Buffer As Texture (INTZ): yes
Info:  * DirectX per stage constants: yes
Info:  * Max texture size: 16384
Info: DefaultWorkQueue('Root') initialising on thread main.
Info: Particle Renderer Type 'billboard' registered
Info: Renderer: GPU description: NVIDIA GeForce GTX 1050 Ti
Info: Renderer: GPU codename: GeForce_Unknown
Info: Renderer: Shader Model 3.0: yes


Guest001 11-22-2019 06:41 AM

Update: GUI 2

http://www.gardenshedproductionsinc....talMatrix2.png

Scott 11-25-2019 09:50 AM

Looking good stomp!

Guest001 11-25-2019 07:06 PM

Quote:

Originally Posted by Scott (Post 393049)
Looking good stomp!

Thanks Scott.

The idea of this game is not to imitate Delta Force or any other shooter.

The thing is, I like mapping the most of all.

So this game is made not only for the players, it's made for mappers and modders too.

I'm hoping it'll be a game that can make many types of games.

So far so good.

Guest001 11-29-2019 10:36 AM

Update: GUI1
The interface you see on startup.

Action
button - straight to the Game

Explore
button - opens pages with info and bonus stuff you can play.

Editor
button - Map Editor

Manager
button - A management tool for doing stuff like exporting maps and viewing and organizing screenshots and other user created files.

BGM
button - Under development: Background music control

*Usual about and exit buttons

*May add minimize button but may be regarded as not neccessary

http://gardenshedproductionsinc.com/...nMenu_GUI1.png

Guest001 12-26-2019 01:03 PM

Trying to get a spin map or mini map into the 3D side of the SDK is problematic.

There are some fuction scripts for mini maps in the SDK but they're meant for RTS type games which I have written out of this project.

There are several game types that have been written out but can also be written back in.

Impulse - Using the physics engine to push a game object around, usually a ball or some such.

RTS as mentioned

Turret Defense - has to be pre scripted so is no good for the creative aspect of the game.

Certain types of side scroller and TPS variants

Have kept just 2 types of these - Arcade and Platformer

Guest001 01-02-2020 03:24 PM

Update: Player Scripts

The problem here is to keep the player camera Z height and rotation in the correct orientation relative to the FOV zoom ratio.
Choosing the best camera offset "float" value is difficult to determine at this stage.
So far the camera position and FOV scripts only load once, when the Game World loads.
It'd be far better if the FOVs could load anytime the player picks up a weapon.


Code:

// ZOOM FOR FPS PLAYER UNITS

// Zoom - Mouse Move Adjustment
 if( World.Instance.Simulation && Instance.MouseRelativeMode )

{
 Vec2 OffsetZoomMove = MousePosition                               
 if( GetPlayerUnit() != null && GetPlayerUnit() is PlayerCharacter )
 if( GetPlayerCameraType() == PlayerCameraType.FPS )
 OffsetZoomMove /= 3; float value                               
 Controls.Instance.DoMoveRelative( OffsetZoomMove );
}


// Zoom - Camera FOV & Zoom Camera Offset
if( Instance.IsEkeysMouseButtonPressed( EkeysMouseButton.Right ) )

{
if( GetPlayerUnit() as PlayerCharacter != null )
if( GetPlayerCameraType() == PlayerCameraType.FPS )
cameraFov /= 6;
cameraOffset /= 3;
}


Guest001 01-16-2020 06:51 PM

Update: Mod Packing Tool

Final stabilty testing in progress.

With this tool the user will be able to pack modified files into the game core.

Code:

//Generated by Mod Tool 3.2

outputDirectory = Mod // variable is optional - browsing enabled
platform = Windows
binaries32Bit = True
binaries64Bit = True
userDirectory = userFolder
archiveDataDirectory = True
defaultLanguage = English
excludeByMask = ""
components
{
        windows
        {
                item0 = Entity_GridNavigation
                item1 = Entity_ObjectManager
                item2 = Entity_TerrainMap
                item3 = Entity_RecastNavigation
                item4 = GUIControl_WebBrowser
                item5 = Physics_PhysX
                item6 = ProjectCommonEntities
                item7 = ProjectGameEntities
                item8 = Rendering_Direct3D9
                item9 = Sound_OpenAL
                item10 = ApplicationType_Game
                item11 = ArchiveType_ZIP
        }
        macOSX
        {
        }
        android
        {
        }
}


Guest001 02-16-2020 06:20 AM

Update: Write permissions in program folders. (Standalone Version)

As security tightens in the OS program folders it's harder to make things work.

I was tempted to set installation elsewhere but it's not a desirable scenario because installing elsewhere may soon be banned by the system, so it's a matter of having to in the end.

The big problem is the editors are going to be installed in the program folders and they'll need permission to save data.

It's taken weeks to work out a way to grant access during installation.

Final design time is drawing closer.

Guest001 07-10-2020 08:55 PM

Update: Next big problem - Encryption :thud:

I've built this tool to assist me because I'll have to build a windows executable to compile each encryted archive.

Basically when all the squares are coloured in it's all done and I'll probably need it in the future for updating so it's worth doing... :gj:

http://www.gardenshedproductionsinc....ConfigTool.png

jabo1SFH 07-12-2020 05:50 AM

Quote:

Originally Posted by stompem (Post 393648)
Update: Write permissions in program folders. (Standalone Version)

As security tightens in the OS program folders it's harder to make things work.

I was tempted to set installation elsewhere but it's not a desirable scenario because installing elsewhere may soon be banned by the system, so it's a matter of having to in the end.

The big problem is the editors are going to be installed in the program folders and they'll need permission to save data.

It's taken weeks to work out a way to grant access during installation.

Final design time is drawing closer.

couldn't you do something similar to how epic sets folder access and permissions for read/write for their Unreal engines?

:headbang:

Guest001 07-12-2020 12:49 PM

Quote:

Originally Posted by jabo1SFH (Post 394813)
couldn't you do something similar to how epic sets folder access and permissions for read/write for their Unreal engines?

:headbang:

Thanks for that suggestion jabo1SFH.

I don't know if the engines you mention write data in Program Files (x86) or Program Files.

Most write in AppData or the user path somewhere like the Documents folders.

After a lot of figuring I've worked out a way to set the permissions similar to that in the Steam folders.

As a heads up on the extent of the issue, even admin privilages are not enough to do it so it's hard.

Now the editor, resource tool and the simulator can write to their own folders.

The game writes to appdata and docs etc...

BTW - The problem will only be for any editions published outside of Steam

jabo1SFH 07-13-2020 05:05 AM

Quote:

Originally Posted by stompem (Post 394815)
Thanks for that suggestion jabo1SFH.

I don't know if the engines you mention write data in Program Files (x86) or Program Files.

Most write in AppData or the user path somewhere like the Documents folders.

After a lot of figuring I've worked out a way to set the permissions similar to that in the Steam folders.

As a heads up on the extent of the issue, even admin privilages are not enough to do it so it's hard.

Now the editor, resource tool and the simulator can write to their own folders.

The game writes to appdata and docs etc...

BTW - The problem will only be for any editions published outside of Steam


sounds good. yeah, steam is similar to, but not totally as extensive, as epic's file structures.


:headbang:

Guest001 07-14-2020 06:48 PM

Quote:

Originally Posted by jabo1SFH (Post 394822)
sounds good. yeah, steam is similar to, but not totally as extensive, as epic's file structures.


:headbang:

@jabo1SFH
I agree - found it hard to keep builds stable - had to leave them for possible future projects.

I paid an outright sum for the engine source, so I have no monthly subscription but then again there's no support either.

I'd say the other engines are in a higher class of stable than mine but they couldn't offer the freedom I can give you with this engine.

That being said there are compromises with this engine as in most engines.


Also this is where I say what a fantastic job NL did. :clap2:


The interesting thing about this solution is that it's in LUA.

I think it's safe enough for me to post it here because the interpreter is proprietary and the variables are custom created, making them no use in any other program, though it can be used as a working example for budding codejocks.

http://www.gardenshedproductionsinc....iptInitLUA.png

Code:

-- User: Stompem
-- Date: 6/03/2020
-- Time: 6:37 PM
-- Type: Coding | Edit
-- Task: Application Init

Application.SaveValue("App:", "License", "LicenseCheck",valid);
eIntOpt32.release.objtask.param = File.DoesExist("Bin\\Deployment.lic");
eIntOpt32.release.objtask.param2 = File.DoesExist("Bin\\Valid.lic");
TargetExists = Folder.NotVirtual.Folder.Does_Exist(_SourceFolder_IsNotVirtual.Folder.."\\Product");
valid = 1;

if TargetExists == false then
        Dialog.Message("False", "Product folder does not exist! Creating folder now...");
        Folder.Create(_SourceFolder_IsNotVirtual.Folder.."\\Product");
        CopiedToTarget = true;
end

if TargetExists == true or CopiedToTarget == true then
        strProductFolder = (_SourceFolder_IsNotVirtual.Folder.."\\Product");
        Dialog.Message("True", "Product folder exists OK!");
        File.SetPermissions(strProductFolder, GRANT_SID_ACCESS_EVERYONE, ROOT_SUB_CHILD, INHERIT, eIntOpt32.release.objtask);
        TaskCompleted = true;
end

if TaskCompleted == true

        if (eIntOpt32.release.objtask.param == true) and (eIntOpt32.release.objtask.param2 == false) then
                File.Run("Bin\\CheckInstallation.exe", "", "", SW_SHOWNORMAL, false);
                eIntOpt32.release.objtask.param3 = true;
                eIntOpt32.release.objtask.param4 = false;
        end
       
        if (eIntOpt32.release.objtask.param == false) and (eIntOpt32.release.objtask.param2 == true) then
                File.Run("Bin\\CheckLicense.exe", "", "", SW_SHOWNORMAL, false);
                eIntOpt32.release.objtask.param3 = false;
                eIntOpt32.release.objtask.param4 = true;
        end
       
        if (eIntOpt32.release.objtask.param3 == true) and (eIntOpt32.release.objtask.param4 == false) then
                DialogEx.Show("intDialog1", true, nil, nil);
                var240 = 1;
                int32 = true;
        end
       
        if (eIntOpt32.release.objtask.param3 == false) and (eIntOpt32.release.objtask.param4 == true) then
                DialogEx.Show("intDialog2", true, nil, nil);
                var240 = 2;
                int32 = true;
        end
       
end


jabo1SFH 07-15-2020 02:22 AM

:gj:


:headbang:


All times are GMT -5. The time now is 03:14 AM.

Powered by vBulletin®