I think scrolling is the easiest solution. No new graphics have to be made.
Straightforward resizing is not a good solution because some texts could become unreadable and we have problems with screen width/height ratio (which is obviously different in 800x600 and 800x480). All windows bigger than 800x480 must be redesigned for this resoultion or scrolled.
I wonder why homm 3 fan artists are not interested in making graphics for VCMI… a lot of new creatures are created, there is even “New Interface” project on heroescommunity… and we haven’t even received a promise of doing something (with a few exceptions, but not from people who have done anything else)… simultaneously 14 developers contributed to our codebase. I don’t know how to explain it.
I had a talk with OnionKnight earlier. We figured it should be of some use that there already is a widescreen resolution available (1680x1050). So we could eventually adopt some of it’s behavior?
Please also note that the Nokia N900 his quite a bunch of pixels available so that text could be really small and still readable. It’s quite comfortable to read such an image designed for a 17" @ 800x600 screen on the N900’s display. So it’s probably unnecessary to think about the missing space (in size). IMHO the problem are the missing pixels at the top/bottom, where information would be lost.
I don’t know how it’s solved for the 1680x1050 resolution, but you’d either have to add black bars on the left and right side (e.g. in a battle), or stretch the picture. You could also add some nice graphics to the left and right end to keep the aspect ratio of the image.
If someone is willing to point me to the relevant graphics, I’d not hesitate to give it a try to make them fit a widescreen. I guess we would need the main entry images (new game, new scenario etc.) and the battlefields. Are towns affected, too? Is there a list of resolution specific graphics available?
I hope OnionKnight could also tell us his thoughts keeping scaling in mind.
I’m not sure if what we discussed is directly related to this issue as it was mainly about how arbitrary resolutions could be supported. I think it would be difficult to apply the layout of something high-res as 1650x1080 because as I understand the main issue here is the lack of absolute vertical space, whereas in the aforementioned resolution this is not an issue.
This is partly what I meant earlier on IRC about dividing resolutions into classes. You could have the UI elements for high resolutions like 1650x1080 and 1280x1024 laid closely to the original H3 since there’s more space available, but when it comes down to low resolutions that are smaller than 800x600 you would need to use a different algorithm (and preferably different sets of sprites) to lay it out properly.
I understand, but I would say there are pixels missing in the high-res 1650x1080, too. The available space is a lot bigger indeed, but in the end, the aspect ratio has still missing pixels on the Y axis, right?
You could say, on pictures with a 4:3 ratio there are pixels missing on the X axis (compared to a 16:9 ratio), but on the other hand a picture with a 16:9 ratio would have missing pixels on the Y axis (compared to a 4:3 screen). So either way you’d have to remove pixels on the Y axis or add pixels on the X axis.
I also understand what you mean with the classes. I think it’s a good idea, and also accept your doubts regarding the smaller resolution. But again, we should at least consider that we could use the same class as for 1280x1080 and for 800x480 (given you didn’t add tons of additional data on the screen).
The sprites from 800x600 should be fine though?
EDIT: Note that the game 800x480 layout created from Zamolxis work quite well, it just fails for battles and the entry screen…
I think you don’t understand how VCMI supports bigger resolutions and where is the problem.
The only interface that is resized is adventure map interface. Game setup menus are always 800x600 and battle window / town window are not fullscreen (you see adventure map below them). It was the easiest solution.
So you can take a screenshot of fullscreen VCMI / Heroes III in 800x600, resize it to 800x480 and display on your device and tell us if everything is readable… some fonts in Heroes are so small that we couldn’t found TrueType font that is equally readable when it has the same height in pixels. IIRC the smallest font is used in spell selection window.
You’re right, I don’t know it. Help me to understand?
I see. The adventure map also works for 800x480, so that’s fine. True that we then have missing space for the game setup menus, battle and town windows. Sorry, I didn’t know it was solved this way, now it makes sense.
I tried. See the result with some reflections/unsharpness (but with the phone to prove the fullscreen 800x600 resolution of the screenshot). Another one with turned off light and closer shot. The camera I took the pictures with is not that good, so the real result is slightly better/sharper. It’s not that hard to read, and as this is a phone you’d have it close to your eyes anyways.
UHH,something i’ve noticed now. In vcmi, try to enter in a map, and then return to the main menu, with the Zamolxis alernate Config . The menu now is in 800x480 …well…kinda. the “Exit Game” button is missing,but in n900 we really dont need it.And that button is still in the range of the mouse, so even if we cant see him clearly,it is usable. Isn’t something we could take from this?
I think you have to ask them. VCMI is running on a separate forum, updates are every 2 months or so, while people is active in other projects. A list with “what to do graphics” would be necessary, so people could see what they are able to do or not.
Just “graphics” is a vast concept, going from working with screenshot to using complex cameras in 3D programs. Need precisions.
It seems that texts are really readable on your device… but I’m afraid that downscaling would require too much CPU power. Scrolling seems to be the best solution… I think I could try to implement it. BTW - how does the mouse pointer work on your Nokia?
Is the game lagging because of the CPU power or RAM? I’m thinking of buying a smartphone in the coming months, but I’d like to know what’s more important to have VCMI run at its best (that & battery life are the only 2 criteria I care about - otherwise all last generation smartphones have more than enough for my needs).
Nice video, I’m just trying to add scrolling but it’s a bit harder than I previously thought. I’m not sure if I manage to do it today.
Definitely CPU. As Warmonger says, 256 MB is more than enough, so anything more won’t speed VCMI up. And it’s very unlikely that VCMI will need much more in the future.
Ah yes. It’s so long since I played in slow speed, I forgot it existed (and I also think in VCMI it’s either even slower or buggy as compared to OH3).
And to comment on a post about 800x480 from another topic:
The part with buttons containing a piece of background is a bit annoying, but I guess it’s not impossible to solve (because I guess that means also the WoG team was able to edit those buttons to include parts of their WoG background).
If someone would have the skill & time for that, we could have the following:
#1. Reduce the number of menu buttons from 5 to 4
#2. From the 1st Main Menu screen both High Scores & Credits could be removed, and replaced by the More button (it’s in the H3Complete auto-load interface, so I guess it can be found in the game files somewhere):
#3. Clicking on More would open another 4-buttons interface:
High Scores
Credits
Settings (suggestion - a link to the VCMI Settings/Options interface)
Back
#4. Clicking on Credits could optionally also open a 4-buttons interface:
H3 Credits
WoG Credits
VCMI Credits
Back
#5. From the 2nd Main Menu screen, the Tutorial button could be removed. Instead, we could have the TUTORIAL map accessible in the Single Scenario list. Maybe even default (as after almost 10 years I got sick of H3, and now VCMI, always defaulting on that Arrogance map :p). Of course, also the saved games should have the same format as single scenarios, but maybe have them default when saving to a name starting with TUTORIAL_.
#6. Same principle as above could be applied to the Campaign menu. Now we have WoG, RoE, AB, Custom & Back. We could have:
RoE
AB
More
Back
And More would open:
SoD
WoG
Custom
Back
(and something similar should be done about the normal 5-buttons interface as well, because it’s annoying not to be able to access the SoD campaigns in WoG now)
If you work on implementing this today, I have a suggestion/request: is it possible to bind this resolution to the 0 key? Like this we can keep the H3 default 800x600 bound to 1 in the resolution selection list.
I’ve partially implemented support for screen scrolling in the newest revision. It works only for game setup menus and has some bugs, but it gives a glimpse of what could be done. To try it out, compile revision 1771 (or newer if my changes won’t be reverted) and change pregameRes is settings.txt to 800x480 (or anything else). Screen will be scrolled when you put your mouse near top or bottom of the screen.
Thank you guys for your enthusiasm and work! I’ll compile 1771 tomorrow night, and check it out (got to get up early, and will be back late).
BTW, I really like the ideas of Zamolxis! But how did you mean the binding to 0? I’d just have checked for the 800x480 resolution being active in settings.txt, and the also start the game with 800x480 (instead of 800x600). If you consider OnionKnight’s thoughts, you could then choose the “mini-widescreen” class to be active for the whole game.
Regarding the speed: I forgot to strip and optimize the binaries after the getting the backtraces for Tow. So the video was taken with a huge binary. I just uploaded the new files and tried them myself. It’s probably a bit smoother now…
Realy Zamolxis, Your idea is very very interesting . Really! I don’t know if it is viable but i hope it could be . So and the rest of the game? How is the principle of it? In the menu the “buttons” were marked on the background. and in the battle/castle views? What are the tricks that we have to do so we can arrange those?
Oh, and in my n900, the game runs more smoother and with more precision that in that video (that one was recorded with the first version posted by slash ).
Thanks again for all this. Thanks to you i can finally say that one of my “tecnologic wishes” came true: Play heroes 3 on the go
@Zamolxis
There is one more nice solution - instead of using “More” button we can add scrolling to main menu buttons
So when launching VCMI in 800x480 we’ll see:
Small and inactive "Scroll Up"
New game
Load Game
High Scores
Small and active "Scroll Down"
Exit
Pressing on scroll down will show Credits, VCMI settings, etc.
If we’ll launch VCMI in some larger res like 1024x768 all available buttons will fit at once and scroll buttons will be disabled or even removed.
As result:
On higher resolutions scrolling will be unused - all available buttons will fit on larger screen already (and there is no need to adjust menu for every res. ).
On small res. there will be no need of multiple “More” buttons - what if somebody will add one more campaigns set (like Heroes Chronicles)? Another one “More” button?
Exit button will always accessible in one click - navigation may be somewhat less annoying IMO.
Possible problems:
Background parts should be removed from all buttons - otherwise it won’t work.
I have not found anything that can be used as arrows in main menu - new pictures needed.
If I change resolution to 800x480 the screen is cropped and cannot be scrolled any more. But if I leave it to 800x600 the game will fail to start (after “Begin”) as it tries to run the screen at 800x600 in the adventure map. But we should use 800x480 here. (Config by Zamolxis)
Additionally it’s quite uncomfortable to use the sliding this way. It’s okay in the SDK as I have my usual mouse pointer. But on the phone the pointer is moved only while holding the finger down, or clicking on any area. So you have to click with your fat finger on the very edge of the screen. Would it be much more effort to make it scroll on click-and-drag? Like hold down your mouse button and slide up/down?
So in short: Works great, with two issues: Game crash if in 800x600 mode (mayor) and sliding uncomfortable (minor).
What just came to my mind: The sliding is still just a workaround, is it? Really no offense, but when it comes to releases, a scrollable 800x600 window would be a mayor suck imho.
I don’t exactly understand (yet) how those buttons are created, but why don’t we just make them a lot smaller? they are way to huge on any screen, they could be quarter the size even on my 800x480 (sure, if we scale the entry menu one day, we’d need different sized buttons, or scale them too). That way we could have even more buttons on one menu, instead of thinking about splitting them or scrolling.
Don’t get me wrong, I’m really happy to have the resolution switch in the settings.txt now (instead of patching CMT.cpp myself), and after scrolling is fixed I’m even happier (and all the N900 guys)! It’s just about the long term planning…