Click here to Skip to main content
15,890,995 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralMe again... Pin
CDP180225-Mar-17 4:43
CDP180225-Mar-17 4:43 
GeneralRe: Me again... Pin
Pete O'Hanlon25-Mar-17 4:48
mvePete O'Hanlon25-Mar-17 4:48 
GeneralRe: Me again... Pin
CDP180225-Mar-17 4:57
CDP180225-Mar-17 4:57 
GeneralRe: Me again... Pin
CDP180225-Mar-17 11:00
CDP180225-Mar-17 11:00 
GeneralRe: Me again... Pin
User 1106097925-Mar-17 4:50
User 1106097925-Mar-17 4:50 
GeneralRe: Me again... Pin
Mike Hankey25-Mar-17 5:16
mveMike Hankey25-Mar-17 5:16 
GeneralRe: Me again... Pin
dandy7225-Mar-17 8:42
dandy7225-Mar-17 8:42 
GeneralRe: Me again... Pin
CDP180225-Mar-17 10:35
CDP180225-Mar-17 10:35 
The original plan was to make a browser game. We (my Padawan and I) did not simply want to write the 100th knockoff of the games that were around. Browser games tend to be rather dull webpages full of lists and countdowns. That's about the worst of all. Every click results in a countdown until something happens. Pay your neighbor a visit with a fleet of ships: Just two hours until they arrive. Build something in one of your colonies: That takes only a few weeks.

You can't totally avoid such things when you work with with the http protocol, but the game must give the player enough to do or look at meanwhile. A battle, for examples, would have to be played in rounds to give all players involved a chance to see what's going on and take some action.

So we built a solid maintainable data access layer and application logic on top of that. The ASP.net web pages on top of that only contained pesentation logic and worked well, but it was still not very interesting to look at a webpage for a minute until some snippet of JavaScript finally updated the page.

So, why not put the application logic in webservices and write a client? At the time I was playing with XNA, so why not try to render 3D scenes into a control? DirectX (via XNA) needs a Win32 window as render target, so our first try was with a windows forms client. I got that working, but only with some major drawbacks. First, Winforms are not so great on the design side. It's almost impossible to completely get rid of that mouse grey color scheme. Some borders or other elements for some reason have no color properties. Even worse, the 3D engine running in the control was more like a separate process that had hijacked a window from the client. Telling it what it was supposed to render was difficult and either cost a lot of performance or massive syncronization, which also voided any gain from running in a separate thread. The only real progress was to use the MVP pattern for the forms. That made moving on to the next UI a breeze.

Our next try was with WPF. The UI looks far better and porting our client was a breeze. We simply implemented the same baseclasses for MVP, this time using WPF controls. We could keep everything up to the presenters and only had to provide new WPF views. The only problem: WPF controls are not based on Win32 windows anymore. Hosting the 3D engine became even more difficult. In the end the only option would have been to use the WinForm host control, but that already had it's problems before.

Maybe we were looking at the problem from the wrong angle. Instead of hosting the 3D engine in some UI, why not host a UI in the 3D engine? I looked what libraries were available. As it turned out, only very few. Only one of them looked really good, but one look at the spaghetti code was enough. Call me stubborn, but I did not want to quit after all this, so I began working on a homemade UI, this time with MVP already built in. Data access, application logic and the presenters all do back to the previous incarnations. I just had to rewrite the views again, adding XAML support and controls to the UI as needed along the way.

And then Mickeysoft killed XNA and told us to play our games in some new Win 8 Metro (Cr)app. At that point I did not really feel like doing that. So I had little choice than to archive the code and forget the whole thing and remember the lesson not to rely on anything made by Mickeysoft.

Obviously some people felt the same way and made MonoGame as a open source replacement for XNA. At frirst the differences in handling graphics resources gave me a hard time moving on to MonoGame, but about two months ago I finally got it to work and have been showing off every further progress here ever since. Now I only have to get my Padawan on board again. The poor fool has gotten himself married and now earns his money as software developer.

And that was only the short story.
The language is JavaScript. that of Mordor, which I will not utter here

This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a f***ing golf cart.

"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."

If software development were a circus, we would all be the clowns.

GeneralRe: Me again... Pin
Ehsan Sajjad26-Mar-17 7:50
professionalEhsan Sajjad26-Mar-17 7:50 
GeneralRe: Me again... Pin
CDP180226-Mar-17 8:33
CDP180226-Mar-17 8:33 
GeneralI was sent this, and ... Pin
OriginalGriff25-Mar-17 3:56
mveOriginalGriff25-Mar-17 3:56 
GeneralRe: I was sent this, and ... Pin
CDP180225-Mar-17 5:08
CDP180225-Mar-17 5:08 
GeneralRe: I was sent this, and ... Pin
ZurdoDev27-Mar-17 1:10
professionalZurdoDev27-Mar-17 1:10 
GeneralThe end of the world is nigh. Pin
The pompey25-Mar-17 2:00
The pompey25-Mar-17 2:00 
GeneralRe: The end of the world is nigh. Pin
OriginalGriff25-Mar-17 2:16
mveOriginalGriff25-Mar-17 2:16 
GeneralRe: The end of the world is nigh. Pin
Duncan Edwards Jones25-Mar-17 2:21
professionalDuncan Edwards Jones25-Mar-17 2:21 
GeneralRe: The end of the world is nigh. Pin
OriginalGriff25-Mar-17 3:39
mveOriginalGriff25-Mar-17 3:39 
GeneralRe: The end of the world is nigh. Pin
Mike Hankey25-Mar-17 3:07
mveMike Hankey25-Mar-17 3:07 
GeneralFuture Project Pin
Member 1163134824-Mar-17 23:50
Member 1163134824-Mar-17 23:50 
GeneralRe: Future Project Pin
OriginalGriff24-Mar-17 23:59
mveOriginalGriff24-Mar-17 23:59 
GeneralRe: Future Project Pin
Mike Hankey25-Mar-17 3:09
mveMike Hankey25-Mar-17 3:09 
GeneralRe: Future Project Pin
PIEBALDconsult25-Mar-17 16:02
mvePIEBALDconsult25-Mar-17 16:02 
GeneralRe: Future Project Pin
Mike Hankey26-Mar-17 2:44
mveMike Hankey26-Mar-17 2:44 
GeneralRe: Future Project Pin
Richard MacCutchan25-Mar-17 0:37
mveRichard MacCutchan25-Mar-17 0:37 
GeneralRe: Future Project Pin
CDP180225-Mar-17 1:12
CDP180225-Mar-17 1:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.