HN user

ensiferum

964 karma
Posts38
Comments621
View on HN
github.com 4y ago

Show HN: 2D Game engine and editor for Windows and Linux

ensiferum
121pts21
www.nature.com 7y ago

5g Detrimental to Insects

ensiferum
33pts12
arstechnica.com 7y ago

The Fiasco of Nike's Self Lacing Shoes

ensiferum
2pts1
www.youtube.com 7y ago

Let's Deploy to Production

ensiferum
2pts0
www.usnews.com 7y ago

SuperCell launches a free coding school

ensiferum
2pts0
www.bbc.com 7y ago

Solar powered rotating house

ensiferum
1pts0
www.theguardian.com 8y ago

Plastic free shopping in the Netherlands

ensiferum
2pts0
fortune.com 8y ago

Saudi-Arabias newest cititizen is a robot named Sophie

ensiferum
1pts0
techcrunch.com 8y ago

Nvidia holodeck

ensiferum
3pts0
www.theguardian.com 8y ago

Inside the internet rehab

ensiferum
1pts0
www.cio.com 8y ago

How to Overcome the “diversity barriers”

ensiferum
1pts0
www.kickstarter.com 8y ago

Pimax: The World's First 8k VR Headset

ensiferum
1pts0
giantfublog.wordpress.com 9y ago

How Usenet Stores Binaries

ensiferum
2pts0
wwf.fi 9y ago

Seal Live Cam

ensiferum
2pts0
www.indiegogo.com 9y ago

Mr. Charger on Gogo

ensiferum
1pts0
www.youtube.com 9y ago

Nintendo Switch Quality Issues

ensiferum
1pts0
www.techradar.com 9y ago

First look: Snapdragon 835 VR Developer Kit headset

ensiferum
72pts29
www.hs.fi 9y ago

Why Trump Should Travel to Finland

ensiferum
1pts0
www.youtube.com 9y ago

Jamie Oliver's Sugar Rush - Health Effects of Sugar

ensiferum
2pts0
arstechnica.com 9y ago

AMD Ryzen Hype

ensiferum
19pts7
techcrunch.com 9y ago

Nintendo Switch Coming Up in March

ensiferum
1pts0
www.pornhub.com 9y ago

Pornhub’s 2016 Year in Review

ensiferum
4pts0
www.nytimes.com 9y ago

Disneyland with Death Penalty, Video Blogger Flees Singapore

ensiferum
1pts0
preventdisease.com 9y ago

The Real Reason for Heart Diseases

ensiferum
3pts0
www.businessinsider.com 9y ago

Where are the first 11 Microsoft Empoloyees Today?

ensiferum
3pts0
github.com 9y ago

Show HN: (Yet Another) Window Library (Win32/X11) for OpenGL/OpenGL ES

ensiferum
1pts0
blogs.nvidia.com 9y ago

Deep learning is helping to save a zebra species

ensiferum
1pts0
giantfublog.wordpress.com 9y ago

How Usenet stores Binaries

ensiferum
2pts0
giantfublog.wordpress.com 9y ago

Portability in C++ is a Joke

ensiferum
4pts0
giantfublog.wordpress.com 9y ago

C++ lacks portability

ensiferum
2pts0

And the sunset calculator doesn't need a location provider. All it needs are location coordinates which can be given to the calculate function.

In fact the whole thing then becomes a standalone function which takes Location and other relevant parameters and returns the computer sunrise/sunset values. Pure function and super easy to unit test.

If one needs to do a lot of "mockups" for your unit tests then maybe one needs to consider the API and class design. Removing needless coupling helps testability by removing the need to use mocks in the first place.

No, not original Claim about WASM but your original Claim that about hot reloading and WASM.

"Hot reloading is a good example."

Again. You don't need WASM for hot reloading.

But that's sort of moving the goal posts now. Original claim for WASM was that it allows hot reloading. Which is a thing you can do with DLLs just fine.

But you can already do this with DLLs or with SOs files. You can keep your network logic for example inside another module (perhaps the host app) and then load the logic that acts on the received data as a dll.

Process separation and IPC natively using a library such as Qt is literally a few hundred lines of code.

Thanks, that link seems interesting and relevant!

Well, ... the Qt3D is a higher level framework that isn't really relevant to the stuff I'm doing considering that I'm basically running my own "framework", i.e. my game engine that renders to my rendering surface.

In my use case what I really need is just to have Qt provide me a rendering surface with good performance (and ideally with working integration with the rest of the widget system) and then get out of the way.

Hi, thanks. Honestly.. I haven't compared. I've built this as a passion project not as a "product" with a product/market fit or competitive landscape in mind. I mean there are already so many engines out there that you can't even give them away for free. So i built it with the features that i had in mind and what i have needed for my demos and what i need for my games.

Hi, you're absolutely correct. Tooling and the whole content pipeline is super important.

I chose Qt because I'm already very familiar with it and I know that it can do so much stuff out of the box and I want the editor to work as any other app as much as possible, i.e. tooltips, shortcuts, cut/copy/paste keyboard focus etc.

So everything works fine (as long as you know Qt's quirks) except that:

OpenGL support is kind of a mess. You have QOpenGLWidget, QGLWidget,QOpenGLWindow, QGLwindow which can all support OpenGL rendering. The problem is that while QOpenGLWidget works nicely with the rest of the toolkit ( context menus etc) the Performance is very suboptimal. I found it to be an magnitude of order worse than just using a window. I'm sure there's something else going other than just FBO overhead.

Another problem related to this but not unique to Qt is how to render to multiple window surfaces but to keep to a nice framerate. If you use vsync on each surface your framerate will be your display sync divided by the # of your surfaces. If you don't vsync then you're running a busy loop and burn cycles in a busy loop. I've tried many ways to do this nicely and haven't found a perfect solution yet. Would be very happy to hear some suggestions. Currently I'm just adding a little thread delay to cap the CPU use but this creates little hiccups in animation sometimes.

Years ago I hikes around Annapurna in Nepal. Going through Thorong La (spelling) pass goes up to 5400m and can have snow any time of year. I saw several unprepared hikers who had simple summer gear with them only. The locals hike this route in flip flops sometimes. Fee years after that there was the big earthquake which killed ppl at Mt. Everest and around the same time that Annapurna area got around 2m of snow in 24h. Several ill prepared hikers got lost and died in the snow storm.

But you can always just use a different layout for your keyboard. So eve with a keyboard with physical key engravings in Japanese you could just use a US layout.

Haha that's the rabbit hole. Two weeks later you're compiling your own kernel from sources just to be able to get that specific version of libc so that you can get libfoo working so that you can get libbar working so that you can get... You get the idea.

Do you have a training/learning curriculum ready?

You'll need to study the following.

* Computer science basics. The fundamental building blocks for computation. The bread and butter of algorithms and data structures. There's no way around this.

* You'll need to learn at least one or two programming languages in order to create actual computer programs and their related tooling.

* You'll need to learn at least one computational platform and its APIs and tools and generally how to build software for it. For example one of Windows, Linux, Android, Mac or web. Choose one.

* You'll need learn how to apply software to solving problems in any particular domain.

* You'll need to learn a ton a about the tools and practices of the trade. Distributed computing, databases, embedded, debugging, tools chains, design patterns, frameworks, APIs, libraries etc. Not all are applicable. What you should focus on depends on what what you want to work with and in which domain.

That seems like an overly narrow stance on the subject. Not all games are AAA level and not all game engines need to be competing in the same category with UE4/5/CryEngine/Unity etc. trying to reach maximal "realism". Not all engines are 3D, not all engines need/want to have realistic physics models or state of the art graphics and rendering.

Is Box2D not a "real" physics engine but a toy physics engine because it's not simulating physics in 3 dimensions?

Games are games and there are a multitude of categories and multiple different dimensions how to judge any particular game or its engine. Saying that something is not a real game engine because it doesn't meet some random narrowly defined criteria is pointless.

I was spending anything from 12 to 16h per day (including weekends) for about 10 months working on my game engine after i quit my day job. Now that I'm working again i still try to throw at least 2-3h at it after work. Mostly i enjoy bit but sometimes there are moments when it begins to feel like a grind too. But unfortunately there's no choice but to grind through those boring tedious parts just go get it done. The key i find is to find the balance between doing the "fun stuff" abd the boilerplate "just has to be done" parts.

It's on GitHub here http://github.com/ensisoft/gamestudio

Well yes like I said on Windows you can access the terminal and set its properties without encoding terminal escape sequences in the output stream. On Linux afaik escape sequences are the only way. On MacOS i have no idea. Generally speaking the escape sequences aren't "standard" but different terminals (and these days terminal emulators) all have their own codes. Hence ncurses which tries to encapsulate this and provide a uniform API so that the application doesn't have to deal with these murky details.

Have you double checked with s hex editor what is in the txt file? Suppose it could also be your text editor that doesn't want to render those codes.

Is this on Windows? If so Windows provides a typical Win32 type of HANDLE API for the console which can be used to change the properties of the console among other things.

My bank called as they had red flagged a suspicious charge on on my credit card. The sum was $0. The bank rep told me that this often flies under the radar and doesn't show up in some records and it indeed did not show up in my transaction history that i could see online in my banking details. But yeah the point was exactly the same. The fraudsters testing whether the charge goes through and the card is alive/valid.