Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

What are you working on? (Game Making Thread)

Been working on some graphics for a game idea I have. The style was inspired by Advance Wars. :)
I could use more frames per animation, but for now I'm just getting the bare minimum so I can see how it all works together.

Soldier%20Green%20Rifle_zpsda9aaqo7.png
 
made my lighting system able to be run in a separate thread
on my intel integrated graphics craptop my fps goes from 60ish to 200ish
on my intel + nvidia gaming desktop my fps goes from 2000ish to 30ish

what the fuck

Could it be Hyperthreading? If I force javaw.exe to use one core, it jumps up to 500fps (albeit with some serious hitching)
 
ZenVirZan":2dcmh6qg said:
made my lighting system able to be run in a separate thread
on my intel integrated graphics craptop my fps goes from 60ish to 200ish
on my intel + nvidia gaming desktop my fps goes from 2000ish to 30ish

what the fuck

Could it be Hyperthreading? If I force javaw.exe to use one core, it jumps up to 500fps (albeit with some serious hitching)
What exactly are you doing?

If you're using OpenGL, then you've likely made a big mistake. If you're using DX10 or prior, then you've like made a big mistake. If you're using DX11, DX12, Vulkan then yeah; WTF.
If you're using a software renderer, then forget the GPU, it does nothing; likely you did a mistake.

Threading, especially with graphics (and absolutely especially with GPU accelerated graphics) requires a load of reading, research, thinking, testing, etc. 99% of the time you can't just "move" your code to a 2nd thread and have it work 1st time flawlessly.
 
Using OpenGL. It's not the lighting rendering per-se; because the game is 2D, the lighting thread calculates the points to construct the overlay, so it's purely just messing with a collections object, parallelizing raycasts etc. I'm aware threading GPU business is more hassle than it's worth for a small project like this.

You're right that the GPU shouldn't change anything at all, because it's not affected by the changes. It must be the hyperthreading butchering my framerate :(

EDIT: after more testing it turns out that it causes my craptop fps to take a nosedive as well, 350fps to 170fps.
So perhaps making threads in java is heavy enough to only make it worth it if it's only happening a few times per second instead of hundreds?
 
For rendering, you should only be thinking about threading up tasks if the FPS if one particular task is taking up over 50% of the rendering time and is missing vblank on your target device. 350 FPS sounds like you don't need to worry about threading.

Generally, threading should be used for an ongoing task that happens across multiple frames or for speeding up hard-core computation. Ray-casting does sound like a use-case for threading, but if it's already crazy fast without threading then you don't need to worry about it.

If you're desperate, consider a job manager paradigm. It's a very, very good threading paradigm and will force you to treat your ray-casting as "tasks" to be completed.
 
I figured I should do the raycasts in a separate thread because I wrote the raycasting from scratch, and it's pretty heavy because it's gotta work correctly regardless of framerate. I'll leave the option in just in case someone actually needs it, but otherwise I'll leave the default as disabled.

Yeah I know the job manager paradigm - a small group I'm a part of has wanted to start a small project and it will be using that. I'm looking forward to seeing how the lead dev is going to do it; I'm not doing it myself because I'm not particularly confident in C++ as is.
 
Hey everyone! It's been a while.

As I interrupt your conversation I'm reminded of a linguistics class I took in college. The professor said that he once watched a preschool class starting after a three-day weekend and all the kids were busily telling each other what they had done over the break. But no one was listening to anyone else; they were all just talking. They were engaging in what the professor called "verbal noncommunication."

So in order to avoid starting my own written noncommunication with you by launching right into spamming you about my game progress, I'm actually going to go back and read through this thread...

And I can say that I can't really help with the multithreading issue. I would drone on about my work in Spark and multithreading stuff in Python, but no one wants to read it and it won't help you out anyway. But it's good to see you again.

TLDR: Hi! I can't help you with multithreading. But it's good to be back.
 
What I'm working on right now: Starting a new job on Monday, wrapped up most of my work here, but I still have to show up for 8 hours, so I'm visiting forums.

Last night taught myself to use Adobe Premiere and Audition. I was already paying for Creative Cloud and figured I should learn to use some of the stuff I'm paying for. I posted a new video on YouTube last night. I think it turned out better than the Windows Movie Maker stuff I had been making previously.

I would just like to take a minute and plug Adobe Audition: I'm sure I haven't even scratched the surface on what that program can do, but I'm already impressed. In just a couple of minutes you can learn to record from the microphone, and then filter out the noise. It's like magic. One second I had a recording with this annoying buzz over it, and a second later, I had a perfectly clear recording.
 
One of the bigger and much newer implementations since I implemented rebindable keys/gamepad support two weeks ago, even if it's just an item.

Zb7acNq.gif

Made in Construct 2. I think I have the Boomerang the way I want it to feel, all down to the clink interactions with solid objects, retrieving items (yes, it does that!) and stunning enemies.
 
I have just discovered how FUCKING useful "families" are on C2
688af5899d6f48aeadd8763ec3f5cd3d.png


In layman's terms:
Player:
When battle starts, if the player is active, and his position is 0, he is set to the first markers position.
If the player is active and his position is 1, he is set to the second marker.
If the player is not active he is set out of bounds.
Demon:
If the demon is active and the players position is set to 0, the demon is placed on the second marker.
If the demon is active and the players position is set to 1, the demon is placed on the first marker.
If the demon is not active he is set out of bounds.
Monsters:
All monsters have both the position and active variables, but are set to a family, so I just check what the families values are, and if there are any monsters that in families and are active, it sets their position :)

A lot more complex shit will be implemented, but now that I know how families work, it makes C2 so much easier for me.
 

Jason

Awesome Bro

Not sure if it's just me, but those headers look awful with the pixel look, and how it displays variables in italic makes them hard to read... can't remember it ever looking like that when I used it.
 
I do love C2's families! Really makes a lot of things a cakewalk, like making NPCs and the player overlap correctly by ordering the family by Y coord and just sending them to the top of the layer.

I just wish I could have families of families, and the ability to mix types within families. (Such as Particles and Sprites in a single family.)
 
That's just how I have it. I've set it all to that cause I find it useful for me. Anyway. I stated it in another thread, but if I ask in two I might get an answer. Jason: Any idea how to compare multiple instance variables?
 

Jason

Awesome Bro

I've not used Construct 2 in AGES so I'm not sure, although I do remember comparing instance variables while making Project GRID... I'll have a root around my old files and see if anything springs out

Edit: Spent the last 20-25 minutes looking at it, and have no fucking clue what I'm looking at or how I did anything... sorry!
 
Just added the GLM headers, preparing for programming the 3D display. Goal for tomorrow is get a cube displayed in a dynamic resolution buffer and animated (a sort of floating animation) at 15 FPS, with the animation ramping up to vsync when your finger hits the display and starts spinning the cube around.

The plan this time round is to get the 3D rendering working much sooner.

Back ported some custom classes to Android API 19, Kitkat, so older phones can play my game fine. Also rewrote the login system to cache user data explicitly on the device, which should fix an obscure crash that kept happening.

Character locks are now downloaded and scheduled for updating, these are called "Instances" and they basically stop you from having the same character on two different devices.

I've been doing some work with MRuby's Android build toolchain, which has been pulled into the main project, so building MRuby for Android is now much less painful than it used to be.


Progress is slower than what it used to be, but I've now learned my lesson about rushing things, so the quality is waaay higher than before. The entire project is more stable and easier to work with than what it used to be, so I'm feeling the benefits already. I miss having working game-play, but I have to prioritise in a manner that gets the project completed, rather than in a manner that helps me test ideas and figure out direction. That stuff has been figured out now.
 
Working on some RPG mechanics.
Instead of teleporting to some black void when you enter a building, the door opens and the exterior fades away. Of course, this means buildings are full scale at all times...
 
The RPG I'm making is essentially a Pokemon fan fame, that doesn't use the IP. With some new features I wanted in Pokemon. Such as being able to join the evil team.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top