This series of posts is used to document my process of developing a full game, and my thoughts during the development process, and is used to provide a reference for those who develop games.
It's the equivalent of a live stream of sorts, and it's always a great way to absorb some of the lessons learned from watching something come together from nothing.
Today I was tasked with completing the ListBox development and the TileEdit development.
Since the results of the ListBox will be integrated into XGE, I had to plan carefully to make this user interface element as good as possible.
The traditional ListBox functionality in the Win32SDK is inadequate, and in most cases developers have to draw their own to suit their situation, which should impress anyone who has experience in this area.
So the modern DirectUI interface library has some major improvements to the ListBox, one of which is that he inherits from the ScrollView instead of drawing a new control altogether, and the second is that he does not rigidly specify the exact presentation of each item in the list, you can fit a CheckBox in the listbox item, no problem, and add an Image if you like, or even fit a new listbox in a list item, which is all allowed in DirectUI.
This is why modern software interfaces can be made very cool. In terms of development ideas, DirectUI is closer to HTML and is ahead of traditional SDK development.
But I also have another different consideration, Win32SDK's ListBox with a layer of OOP wrapping can easily be made very easy to use, like Visual Basic, and usually a most basic listbox can satisfy most needs, if I launch a very strong DirectUI version of ListBox, it means there will be a lack in ease of use.
It's a hard trade-off, XGE wants to be as powerful as possible, but also wants to be as easy to use as possible, but very often the two are in conflict, so it's another question of technology selection.
Initially I chose to stay true to DirectUI and defined a huge set of interfaces to solve this problem, but of course eventually the ease of use deficiencies forced me to push back the whole control and redo it. After thinking about it, I decided that at this stage of the xRpgMaker project when it was urgent to move forward, I should first implement a classic ListBox that could meet most of the needs, and then develop a new, more powerful ListBox.
Well, my four hours of work will now have to be archived and ready to be re-released after a few rounds of refinement.
Before I know it, it's dawn again, and at the current rate of progress, it's clear that I won't be able to finish the work I set out to do today, so I have to implement a simple ListBox as soon as possible.
First, for ease of use, I need to implement an ItemSet object to manage a collection of list items. This is easily accomplished using the xBsmm component (full name of xBsmm: xywh Basic Structured Memory Manager).
Essentially xBsmm is an ordered list and implements automatic memory management. This system will appear in many places in XGE and xRpgMaker in the future, such as in the nature of databases, which write the structured memory in xBsmm directly to files.
To implement this basic ListBox as soon as possible, I didn't choose to inherit from ScrollView, so that I don't need extra code to handle the scrollbar and it's a bit simpler in terms of child control layout.
I tested the efficiency of the sub-control layout again, and apparently it didn't quite satisfy me, so I finally decided to leave the list without the sub-control layout and redraw it completely (well, I finally went back to the Win32SDK technical route ......)
At 9am I was about done with the redrawing part of the ListBox and the various property definitions, but no progress on the operations part yet, I had to take a break, before the break I synced the code to xRgpMaker and populated it with test data, resulting in an updated screenshot that represents the look of the xRpgMaker DBEdit component, I'll have to make up more progress later on.
Good morning ......
Translated with www.DeepL.com/Translator (free version)
For a comparison of the final result, these are probably the last two controls needed for DBEdit (I decided to use Image + Draw instead for the chart).
Game development specific discussions.
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 2 guests