Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Real Fullscreen in DX8 Download (EO3, Skywyre, EW, ect)


Mohenjo Daro
 Share

Recommended Posts

Ok, as some here know, I've been working on Full Screen in Eclipse for a couple days, and, now, it's working. This is not stretched fullscreen that looks bad and doesn't add much to the game, but, instead, it's really, it expands the view the player sees on the screen.

Now, for times sake, and the fact that I didn't fine tune every last thing in the engine, and since I used Sky's (Jaxx's) Skywyre Engine to do this, I am putting up the engine so that users can download it and rip the system out.
Don't worry, I have commented everything that I did, so all you have to do is search for **fullscreen** and you'll find what you need to copy from the engine.

Now there are a few things that will have to be fixed in the engine for fullscreen and resizing to work with the GUI. As I have made the GUI render in the correct areas, all that is left is to make the coordinates for clicking the buttons and hotbar be in the correct spot with the graphics. (The graphics are in the right spot, but where you click to activate them aren't), but you can use the graphics codes as a reference of what needs to be changed to make the clicking coordinates in the right spots.

A video of the Fullscreen and Resizing system

>! https://youtu.be/xKwaOPOz9t4

**So, to sum it all up, here's what you do:**
**Download the engine**
**Rip the code out**
**Open frmMain and in the properties, change the border style to "2 - Sizable"**
**Either finish the GUI for resizing and fullscreen, or where I changed rendering in modGraphics, just switch what I commented out for what I added.**

[Download](http://www.mediafire.com/download/3884pfaygbwzmba/Skywyre+Primitive+v6+Fullscreen.rar): http://www.mediafire.com/download/3884pfaygbwzmba/Skywyre+Primitive+v6+Fullscreen.rar
(Same download, just put it for both: word and link)
Link to comment
Share on other sites

This is most definitely the best full screen system here on Eclipse. It actually enables "true" fullscreen rather than the stretching or blank space around the game ways of doing it. No more need to squint at the game for those of us with 1080p monitors too.
Link to comment
Share on other sites

I only reinitialize the graphics when the fullscreen is used and I rerender the chatbox text constantly now, other than that, I don't believe I changed what renders. But I changed the chat text because it needed to follow the chatbox, and the game screen should apparently be rerended when the fullscreen is on and off, from what I was told at least.
Link to comment
Share on other sites

  • 4 weeks later...
if I type / fullscreen in the chat the game crashed ^_^   in your and in my version the same.
Can you help me?

Error log:
The following error occured at 'Render_Graphics' in 'modGraphics'.
Run-time error '-2147467259': Automation error.

Edit: and now i see a problem with the gui ^_^ same with your version :-)
[attachment=30]
Link to comment
Share on other sites

Well, good to see that I have the GUI graphics placed in the right spot XD Umm, I'm still working on this in my free time (which currently I don't have) so when I have the coding fixed to use pixels and not twips, I'll reupload the better version.

The issue with the fullscreen happens in my version from time to time as well and the border is just a formula issue. The GUI I only drew where it should go, I didn't find it in the code to actually move it.
(I'm telling you this so you have a better understanding of what I was doing with the code and what I'm planning to fix later)
Link to comment
Share on other sites

  • 4 weeks later...
You should not allow changing of the form size by the way. Disable that. As as side note, the Eclipse Origins camera sucks and has a ton of bugs. I fixed these bugs already when I did my full screen system. It will have a ton of regressions, this is why no one has done it yet except Robin.
Link to comment
Share on other sites

Nice work on the fullscreen system. Here are a few things you might wish to change.

1) You are re-calculating variables like MAX_MAPX every time you render. You shouldn't. Just calculate it once (when the resize occurs)
2) You're re-init method (DirectX_Reinit) doesn't reinit the graphics engine to Fullscreen mode. Not sure why you have a ReInit method and a plain old init method. Roll them into one method.
3) Your GUI coordinates are calculated during rendering. This is totally stupid, esp. when you have UDTs for holding these essential GUI data. When you resize, re-calculate these coordinates and store them in the UDT. This will also fix your problem with mouse down/up etc events not working when in fullscreen.
Link to comment
Share on other sites

Thanks for the advise, Abhi! For once a helpful post lol, I'll be redoing the fullscreen system after I finish it for DX7, which is nearing done.

And Seth, not many people have made a working fullscreen system, and unless you can actually give a reason to why I should get rid of the resizing, then just stop. And what sort of fullscreen system do you have? Stretched or real?
Link to comment
Share on other sites

@'Mohenjo:

> Thanks for the advise, Abhi! For once a helpful post lol, I'll be redoing the fullscreen system after I finish it for DX7, which is nearing done.

As far as I remember, DX7 doesn't have a '.windowed = true' mode. How are you doing it? Resizing the form and changing the render buffer?
Link to comment
Share on other sites

A lot of people have done it, but they have all sucked. I never did it publicly, I did it for Nin Online. It hasn't been released yet obviously, we are working on making the GUI fit properly, since it wasn't coded right to begin with. Had to redo it and Abhi added in Robin's GUI which is not completely done either. The fullscreen system I made is where you see more tiles, I also have where the small maps center. This is the most advanced fullscreen system that exists that I know of around Eclipse.

Windows resize is per pixel, you want to force a consistent tile resize. Basically, you don't want to allow the player to mess with the window form size, since it can be sized too small, or cause problems where certain tiles aren't completely shown. Completely shown is where, you see part of a whole tile, this is not good. You also can just setup resolutions instead. Game developers create this for a reason, it is bad for the player to have to resize the form manually to what size they want plus it is harder to do.
Link to comment
Share on other sites

@'Helladen':

> [drivel snip]

Speak for yourself. 

* I managed it with a resizable window. I rewrote the camera "method" to achieve this. As you say, you see more tiles and the maps center. You also see part of tiles correctly.
* I (re)wrote the GUI system entirely because the typical CSDE implementation that nigh everybody uses around here makes little sense, is horribly scattered and is unwieldy. It resized nicely and could re-arrange if the window got too small.
* "Basically, you don't want to allow the player to mess with the window form size, since it can be sized too small, or cause problems where certain tiles aren't completely shown."? What were you doing even to result in this? Why is it a problem if a tile is only partially shown? The edge of the map isn't the current focus. They can come to that when they walk over it!
* "it is bad for the player to have to resize the form manually to what size they want plus it is harder to do.". Create it well enough, nope, not hard to do at all. While I did give players set resolution options, they could resize it as they wanted too. It's no different to putting in their custom size when recalculating where the set sizes were passed.
* Overall, this wasn't very hard at all. You rate yourself too highly.
Link to comment
Share on other sites

Did you release this publicly? I never said privately. I didn't say anyone did it, cause I never seen it done properly. Not saying it is impossible to do or that I am the only one able to do it. People always think I think I am better than the world, delusional individuals. I always respond with programming is one of my worst skills. It is more of a design thing. Resizing a form is messy. Most games don't allow this, they also disable the maximize button due to how poorly Windows handles WInAPI.
Link to comment
Share on other sites

@'Helladen':

> Did you release this publicly? I never said privately. I didn't say anyone did it, cause I never seen it done properly.

I did! About 3/4 years ago I did this with Iron Prelude.

My apologies, I can't expect you to know that, however why I responded in the first place is covered next.

@'Helladen':

> Not saying it is impossible to do or that I am the only one able to do it. People always think I think I am better than the world, delusional individuals.

And I think that, because _that's the way you come across_. 

You always present yourself as if everybody around you is wrong and you appear to sneer at those who couldn't do it right, and rather than correct them or offer some steps to improve you'd simply brag about your perfect solution and how bad everything else is. 
(see: "A lot of people have done it, but they have all sucked. [… no suggestion here other than self plugs ...]")

@'Helladen':

> I always respond with programming is one of my worst skills.

Funny, I don't see that disclaimer anywhere else in this thread. Why is that now relevant all of a sudden if you didn't bring it up before?

@'Helladen':

> It is more of a design thing.

It's more of an implementation thing (As far as I'm concerned, the UI can be made to either re-position itself depending on window size or have multiple implementations for various sizes (as an example, 1 for less than 480px in width, less than 960 in width, etcetc). In the case of multi-platform games, normally a hybrid of the two).

Reasoning follows.

@'Helladen':

> Resizing a form is messy. Most games don't allow this, they also disable the maximize button due to how poorly Windows handles WInAPI.

I can agree with that it's messy, however it's not impossible to manage (actually, it's quite easy. Provided it's been implemented well, it's just a case of passing in the size to whatever recalculates the lot for you, resizing your buffers, making sure that it's redrawn, context loss is handled, and a few other generic things). 

It's just a case of wondering if it's worth the effort to allow users to set the size how they want.

For 3D games (which function generally independently from resolution in that they work with co-ordinate space (usually) from 0 to 1/-1 to 1 and the aspect ratio of the window, and because of that handle resizing with little effort to begin with), it almost never is worth the effort.

For a 2D game (whether it's managed or not, the co-ordinate space is provided transformed values from the window size, and because of that require a few things to be redefined when resizing), that's more debatable. I think it's worth it.
Link to comment
Share on other sites

If you can control Windows form resize to be a certain value for each resize then sure, otherwise no I disagree. I don't ever want to resize a form myself, it is just not good design honestly. A maximize button is good always in my opinion though, but sometimes the developer does not wish to program it in. As for my own experience, maximize has no reason to be implemented since I need to reset the client each time I go from windowed mode to full screen mode. This is due to how DX is inited. There may be a better approach to do this, but it isn't really worth the hassle. Just allow the user to config the fullscreen in the updater and you're good to go. Maximize is overrated in all honesty for these engines anyway. Stretched is ugly. My opinion comes off as truth cause I strongly believe in it. it doesn't mean you have to take what I say that way though.

I am honestly done responding, people get too uptight. If someone came off this way to me, I just would know they felt strongly about it. You can agree to disagree, no need to get so mad or act like I am super egotistical. Everyone has their beliefs, I don't know how many times I need to tell people this.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...