Register
Handmade Hero»Forums»Code»How to go from making a game to making an app?
Ian Hern
8 posts
How to go from making a game to making an app?
3 years, 10 months ago Edited by Ian Hern on Jan. 7, 2016, 9:14 p.m.
If I wanted to take what I've learned here and make a windows application instead of a game can I use the same approach of having a draw and update loop? Is there a better way of going about it?
Mārtiņš Možeiko
1983 posts / 1 project
How to go from making a game to making an app?
3 years, 10 months ago
Yes, you can. Imgui library that Casey mentions often on a stream, gives you API for creating UI for any kind of application. And it works in a way exactly what you said - drawn and update loop.

Check out homepage here: https://github.com/ocornut/imgui
And see screenshots from various applications here: https://github.com/ocornut/imgui/issues/123
popcorn
71 posts

How to go from making a game to making an app?
3 years, 10 months ago
I guess you can follow some of the rules he has like Write usage code first and such.

I'm not sure about allocating memory first though, it would work for somethings but for like continuous data app like an IRC where you get tons of messages. I guess you can allocate a big chunk like let's say 1GB and when you run out, delete the old messages? It might be a bit tricky.

"The important thing is not to stop questioning. Curiosity has its own reason for existing. One can't help but be in awe when he contemplates the mysteries of structure of reality. Never lose a holy curiosity." -Albert Einstein
Bryan Taylor
55 posts
How to go from making a game to making an app?
3 years, 10 months ago
C0D3
I guess you can follow some of the rules he has like Write usage code first and such.

I'm not sure about allocating memory first though, it would work for somethings but for like continuous data app like an IRC where you get tons of messages. I guess you can allocate a big chunk like let's say 1GB and when you run out, delete the old messages? It might be a bit tricky.

Game or not, the user doesn't have an infinite amount of memory. And unless you're writing something that is a primary application (think web browser), you need to keep your memory footprint as small as you reasonably can. And for that, pre-allocating (or at least allocating in discrete chunks) is a pretty good idea.

(The way things like IRC clients handle this is: you keep a small buffer of backlog, and write the rest out to disk. Any IRC client that allocates a GB of memory is going to get canned immediately.)

poohshoes:
There's certainly nothing *stopping* you from writing a normal application this way. The difference is that you can't necessarily assume you have full control of the machine. With a game, (especially a fullscreen one), we can feel pretty confident that we don't need to leave plenty of memory and CPU time on the table for other processes. With an application, you usually do. This isn't *hard*, but it's a thing to keep in mind.