Page 8 of 8

Re: DELTA General Discussion Topic

PostPosted: December 13th, 2017, 1:21 pm
by Simion32
I can't really do that without giving away the code. Sorry.

Anyway, I'll have to do everything in a specific order so that I'm able to compile and run tests at certain key points in the rewrite.

Re: DELTA General Discussion Topic

PostPosted: December 25th, 2017, 11:48 am
by Simion32
Progress Update: 1/3 of Rewrite Done, LUCIDs Revised

The new rewrite of the code is at 8048 lines of code. That means I'm roughly one third of the way through it all (not all of the code has to be re-written).

-----------------------------------

LUCIDs (Logically Unique Class Identifier) have been upgraded and are now ready for integration into DELTA.

The new LUCID format includes a 40-bit timestamp, an 8-bit generate count, 16 bits of a user ID that never changes (unless the user changes it), and 128 bits of hashed unique data (it does a SHA256 then XOR's both halves together).

The unique data and timestamp, along with the other pieces of data, ensure that each LUCID is unique across all machines globally. This means that DELTA can use the LUCIDs of game files to effectively link together a game's data, no matter how many times a file gets edited.

Re: DELTA General Discussion Topic

PostPosted: January 10th, 2018, 2:50 pm
by Simion32
Progress Update: More of Rewrite Done

I've completed the video and rendering section of the rewrite, but the input code remains. (I can at least draw a sprite on the screen now!)

The input routines are some of the messiest that I've got. So - rather than mostly copying what's there already - I'm going to have to delve deep into the inner workings of the input to achieve a workable rewrite.

This will introduce the concept of "Player #0" that all input is sent to by default. It will remove the need for device detection at startup, and streamline the rest of the code that uses the input routines.

The input will also be retooled so that it doesn't process input events using the faulty timestamping system that's currently in use. The reason for this is that the timestamps actually occur at the time the engine reads the WM_INPUT message, meaning they are inaccurate - and the handler code is faulty as well, since certain inputs will be thrown away or ignored depending upon the timestamp.

Re: DELTA General Discussion Topic

PostPosted: February 16th, 2018, 10:06 am
by Simion32
Progress Update: Input Rewrite Done!!!

I've finally gotten all of the input code reworked and rewritten.

There was one major bug causing input to be skipped (This bug was in previous versions of DELTA!!). Turns out that GetRawInputBuffer() causes some of the input messages to be ignored, so I've removed that part of the input processing and I'm doing the processing one message at a time.

The input is nice and fast, responsive, and doesn't have any "missed input" bugs left over from the old code. :geek:

What's next? NitroGUI v2.0 is on the development list.

Re: DELTA General Discussion Topic

PostPosted: February 17th, 2018, 9:02 am
by Super Luigi!
Good luck, Sir Simion32! Take your time and succeed!

Re: DELTA General Discussion Topic

PostPosted: February 23rd, 2018, 11:47 am
by Simion32
As it turns out, ALL of the input bugs that were just fixed in the DELTA rewrite also affect the latest DKCRE release.

I won't be able to update DKCRE until NitroGUI v2.0 is done, but the bug fixes will deal with some problems that the RE interface was having.

NitroGUI v2.0 will probably take me at least one month to get going, but I'm unsure due to the complexity of the GUI code.


Hopefully I can get this rewrite done so that I can release another DELTA test demo. :geek:

Re: DELTA General Discussion Topic

PostPosted: February 24th, 2018, 3:41 am
by Super Luigi!
No matter how long it takes, Sir Simion32, I know you can do it. Please continue to live well, succeed greatly, and be a hero to children everywhere! :banana:

Re: DELTA General Discussion Topic

PostPosted: February 28th, 2018, 2:56 pm
by Simion32
New Input Engine Test
DELTA Game Engine v0.0.7.0 r01

This build has the newest input improvements. This prevents several glitches from happening. :geek:

There are new messages that can appear in the DebugLog.txt depending upon your configuration.

The program generates an XDQ (Delta Device Map) file upon successful program close.

**SEE BELOW FOR UPDATE**

Re: DELTA General Discussion Topic

PostPosted: March 4th, 2018, 7:35 am
by rainbowsprinklez
:thumbs:

Re: DELTA General Discussion Topic

PostPosted: March 22nd, 2018, 12:23 pm
by Simion32
Graphics Engine Test
DELTA Game Engine v0.0.7.0 r02

This build has font functionality working. The test is for graphics working through the Compositing Engine.

Some bugfixing work has been done on the input code, as well as a few crash prevention measures.

The percentage and FPS meters etc. are back again, now that DELTA can use fonts again.

DOWNLOAD HERE

Controls:

  • ESC key exits the program.
  • Q and W to flip the background image.
  • Keys 1 through 4 change which scale mode to use (Test, Emulator, Ratio, and Full).
  • F11 for full screen, Alt+F11 to try 800x600, and Ctrl+F11 to try 640x480. Press F11 again to exit fullscreen.

Re: DELTA General Discussion Topic

PostPosted: May 22nd, 2018, 11:23 am
by Simion32
Progress Update: NitroGUI v2.0 To Be Fully Scripted

I've been developing a plan for the implementation of NitroGUI v2.0, and I've come to a conclusion:

The main functionality of the interface has to be a fully scripted system!

This means that I will more easily be able to tweak, edit, and generally mess about with the GUI in DKCRE and DELTA -- including making adding interface items easier (I plan to make an editor program for NitroGUI-based interfaces... eventually!).

Another important update to the GUI plans is that there will be a separate "Game Mode" for DELTA's interface, allowing me to optimize what matters most depending on whether a game is being run inside the program. For DKCRE, this will introduce heavy optimization that can only be done with advanced "dirty rectangle" video transfers.

Re: DELTA General Discussion Topic

PostPosted: May 27th, 2018, 11:43 am
by Simion32
Progress Update: Main Engine Being Re-Structured

This is a quick note to let you know that the main engine (core structure) is being redesigned to make the code more organized. :geek:

Specifically, the CVideo class is being upgraded and the new CEngine will debut to take care of the engine's main game loop.

There are a few classes that aren't going to change - CInput and all of its subclasses are basically perfect, so they don't have to be redone.

As well as these adjustments, the video modes are all now locked completely to 32-bit with Double Page Flipping. Triple Flipping support has been dropped because it's not supported everywhere, and adds needless complexity. Besides that, the other two modes (Buffered modes) were removed because the game/engine will run really clunky in them - there wasn't really a reason to keep support for them!

Finally, there will be new video features that make frame skips behave properly - a frame skip shouldn't cause stuttering in the engine, it should just drop and not render to the screen. This new feature will take some significant timing voodoo to detect situations where the engine has run out of time for the current frame.

Re: DELTA General Discussion Topic

PostPosted: July 13th, 2018, 11:38 am
by Simion32
Progress Update: Making Progress on NitroGUI v2.0

I haven't gotten a whole lot done since my last post, but the re-structure of the main classes is COMPLETE.

I've been planning out how to go about creating the scripted NitroGUI stuff, and it's looking to be very complicated.

NitroGUI v2.0 will include a file-based script reader that can use external files to build GUI elements. This will be made up of PNG files and simple text files that describe the interface elements, as well as where to use certain interface graphics.

The best part of the plan is that I will be able to edit the layout, graphics, and behaviors of the GUI almost completely by script — and when I'm done, the work can be compiled into a special file that will hold all of the interface stuff (for internal use).

Finally, having this system use simple text files means that I can allow users to edit or create their own GUI themes!

Re: DELTA General Discussion Topic

PostPosted: October 31st, 2018, 11:29 am
by Simion32
Progress Update: Delays!!

A short update for those who don't get on the Atlas chat:

I kind of have to apologize for DELTA being delayed so significantly.
I simply haven't had the time to get much done.

NitroGUI v2.0 is the next big step, and even then, it's not the final piece to the puzzle.
But if I don't get NGUI v2.0 done, there wouldn't even be an interface in the first place, so....

I'm basically stuck in the planning phases until I manage to get things right. :x

Re: DELTA General Discussion Topic

PostPosted: November 22nd, 2018, 10:58 am
by Simion32
Basic Rendering Engine Test
DELTA Game Engine v0.0.7.0 r07

This is a basic test of the windowing and rendering systems. It has a very fancy scaling engine implemented. All window coordinates are remembered, and the windowing system already has fullscreen mode support.

The rotating banana image has become a key test file. You will see the KPX (graphics file) loader system also working here.
DELTA manually loads some PNGs from the ExDat folder and assembles them into Banana.KPX in the Files folder.

Finally, there are numerous tests of the rendering engine that you can control using the keys below.

DOWNLOAD HERE

Controls:

  • ESC key exits the program.
  • G key tests the GUI rendering mode (hold down to test).
  • H and J keys swap the video scale mode (it starts in mode #0, equivalent to pressing the J key).
  • Space key flips the animation horizontally.
  • F11 for full screen. Press F11 again (or click the restore box) to exit fullscreen.
  • The window can be resized using the mouse!! (just make sure the window is focused first)

Re: DELTA General Discussion Topic

PostPosted: March 6th, 2019, 1:52 pm
by Simion32
Progress Update: More Delays!?

Development is now at a full halt.

There are some things in life that I have to take care of, so I won't be able to develop on DELTA until those things are done.

This could take a month, or maybe longer. :x

Where I'm actually at in development:
Presently, I have the file gatherer and the tokenizer done for the NitroGUI script reader system, but the logic code and anything relating to actual GUI elements doesn't exist yet. So it can load in the files and it can separate out the GUI commands, but it can't do anything with those commands yet.

Re: DELTA General Discussion Topic

PostPosted: March 10th, 2019, 1:34 pm
by Super Luigi!
Super Luigi! wrote:No matter how long it takes, Sir Simion32, I know you can do it. Please continue to live well, succeed greatly, and be a hero to children everywhere! :banana:


The file gatherer and tokenizer certainly sound interesting, Sir Simion32, and I eagerly await your next update. Focus on your life, and then return to DELTA when you can. Eventually, we shall both succeed.

Re: DELTA General Discussion Topic

PostPosted: May 30th, 2019, 10:46 am
by Simion32
Progress Update: NitroGUI v2.0 is Officially Underway

Development Resumes!!

I'm getting back into the swing of things with some nifty interface code that will allow me to build an editor for NitroGUI interfaces, which I call NitroSmith.

But this time, the code is so generic that I should be able to skip over a lot of the complexity that the first version of NitroGUI introduced. At the same time, there will be enormous complexity in the "behaviors" part of the code -- I have to cover for text editing, number editing, scroll bars, and a ton of other smaller things like button states and blah blah blah.

It will take some time before I have a demo or anything that can be shown for progress. :bunch-tf:

Re: DELTA General Discussion Topic

PostPosted: July 19th, 2019, 5:34 am
by Simion32
Progress Update: The new scripting format!!

Say hello to a new NitroGUI script format, called DTML!!

This new format mimics the look and feel of HTML, but instead has its own specialized tags and behaviors that are specific to NitroGUI. Instead of using straight-up HTML with CSS, this format does not include any style/formatting system, and all the layouts are done through one scripting format.

Among other features, this new way of building GUI elements will allow users to script their own "object properties" dialogs for the DELTA editor. :geek:

Among the tags I have designed so far, we have:
<var> (deals with variables that are set for each control)
<table> (does a table layout, always borderless)
<div> (used for grouping or organizing controls)
<button> (this one is highly customizable and deals with button states. It can even be set up to handle "tabs".)
<img>
...and there are more to come, but that's all I have designed so far.


And keep in mind that none of this has any interpreter code done yet. I'm not done with the planning stage quite yet. ;)

Re: DELTA General Discussion Topic

PostPosted: July 19th, 2019, 1:22 pm
by Super Luigi!
Well done, Simion32. I'm glad to hear of your progress. Thank you for continuing to create this colossal contraption.

Re: DELTA General Discussion Topic

PostPosted: August 4th, 2019, 4:41 am
by Simion32
Progress Update: DTML Plans COMPLETED!!

This is just an update post to let you guys know -- I've completed the plans for the DTML scripts and I'm currently working on making the interpreter and GUI code.

This part could take a while, seeing as how there is dynamic complexity in each script tag. :ugeek:

*crosses fingers*

Re: DELTA General Discussion Topic

PostPosted: August 9th, 2019, 3:38 am
by Simion32
Progress Update: DTML Loader Underway

Another micro-update! As of the time of this post, I have completed 4 stages of the DTML loader (there are several more stages left to code).

Things are going much more smoothly than I thought. B/

Oh, and one more thing. My busy "greenhouse" time is over for the year, meaning I'll have much more time to devote to coding DELTA. ;)

Re: DELTA General Discussion Topic

PostPosted: August 10th, 2019, 1:39 am
by Super Luigi!
Keep going strong, Simion32. I'm glad your progress is progressing progressively, and I wish you the best with your continued success.

Re: DELTA General Discussion Topic

PostPosted: August 18th, 2019, 9:09 am
by Simion32
Progress Update: DTML Being Coded and Debugged

I've made quite a bit more progress, but there are still at least 3 stages and a bunch of control-specific code fragments left before I can call NitroGUI v2.0 finished.

There is especially an ENORMOUS amount of work left to do on the controls themselves. Some of them even require custom rendering. :ugeek:

Attached is a preview of me working with the file opener dialog (a test script).

Spoiler!
ngui_progress_20190817_simion32.png

Re: DELTA General Discussion Topic

PostPosted: August 23rd, 2019, 4:42 am
by Simion32
Progress Update: More Progress on NitroGUI v2.0

I've gotten more of the GUI stuff done, including nested checkbox trees and font (text) rendering modes. I also have a very clever events system working.

The next step is to implement the File Viewer, Folder Drill-Down, and File Types Picker, and do code for the Path and File text boxes as well (right now they don't allow to edit the text or anything).

This is going to be a massive "code grafting" effort that will take me a few days to complete. B/

Here's the obligatory development screenshot:

Spoiler!
ngui_progress_20190822_simion32.png