by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 2019 18:27
    Noofbiz assigned #167
  • Jan 31 2019 14:58
    cos29 forked
    cos29/engo
  • Jan 31 2019 08:31
    blue-bird1 starred EngoEngine/engo
  • Jan 31 2019 04:43
    conmarap starred EngoEngine/engo
  • Jan 30 2019 17:02

    Noofbiz on master

    improve test coverage and fixed… fix js set title Merge pull request #637 from En… (compare)

  • Jan 30 2019 17:02
    Noofbiz closed #637
  • Jan 30 2019 16:56
    Noofbiz synchronize #637
  • Jan 30 2019 16:56

    Noofbiz on improve-test-coverage

    fix js set title (compare)

  • Jan 30 2019 08:14
    Noofbiz opened #638
  • Jan 30 2019 08:08

    Noofbiz on sdl-vulkan-fixes

    (compare)

  • Jan 30 2019 08:06
    Noofbiz opened #637
  • Jan 30 2019 08:06

    Noofbiz on improve-test-coverage

    improve test coverage and fixed… (compare)

  • Jan 28 2019 05:48
    patrickrgaffney starred EngoEngine/engo
  • Jan 28 2019 03:26
    conmarap starred EngoEngine/engo
  • Jan 26 2019 05:45
    Noofbiz closed #180
  • Jan 26 2019 05:43
    Noofbiz commented #636
  • Jan 26 2019 05:43

    Noofbiz on master

    implemented view-culling for ba… speedup `MultiplyMatrixVector` … removed unnecessary map access … and 8 more (compare)

  • Jan 26 2019 05:43
    Noofbiz closed #636
  • Jan 25 2019 06:45
    boombuler commented #636
  • Jan 25 2019 06:43
    boombuler synchronize #636
Noofbiz
@Noofbiz
I’ve never really liked the slave/master terminology personally, it just feels weird. I know it’s a carryover from hardware where everything uses master/slave
Idk just a thought lol
Igor Palamarchuk
@r3mb00
Master/Slave is ok as for me. Especially if you have experience with the setting up PC hardware in the past.
But when I read about the Github's terminology changing I thought what is next? :)
Renaming the branches :) or maybe git pull git push sounds very cruel :)
Noofbiz
@Noofbiz
Hey guys! I made a pixel shader for engo. I’ve been looking into raycasting art stuff, like on Shadertoy and thought it’d be cool to have something for engo lol
Hajime Hoshi
@hajimehoshi
Is the shader only for GL
?
Noofbiz
@Noofbiz
Yeah, sadly I can only figure out how to accept spirv in Vulkan so far lol
I thought about using the glslangvalidator tool but it only outputs to files not to stdout so that makes it challenging
Noofbiz
@Noofbiz
idk I’m mostly just playing with fragment shaders to make trippy effects. Think EarthBound battle backgrounds lol
Hajime Hoshi
@hajimehoshi
Oh that sounds a lot of fun!
Bruno Albuquerque
@brunoga
Is it possible to have more than one window managed by Engo? In other words, have a multi-window Engo app.
gattytto
@gattytto
hello, is there menus and user interfaces examples made with engo?
Noofbiz
@Noofbiz
@brunoga it should be possible to have more than one window managed by engo but it's not out of the box and would take some work
You'd use two render systems, one with a different priority than the other, so set one to like 4 and the other 6. Then you'd need two more systems that has a handle to the windows. The first one would be priority 5 and call glfw.Window.MakeContextCurrent on the second window. Then the second render system will update the second windows. Then the last thing to do is a system with priority 7 that calls MakeContextCurrent with the original window. That'll make it so the first render system updates the first window at the next update pass.
Noofbiz
@Noofbiz
Unfortunately we don't have a ui system yet, but it is in the works #624
That said, I would like to put together a list of features and capabilities a UI system should use and start from there. If you have any thoughts feel free to leave them here or on the issue!
5 replies
Noofbiz
@Noofbiz
@brunoga you may also need to set GLFW_RELEASE_BEHAVIOR_NONE on both the windows to stop it from flushing your pipeline between calls to make context current. I'll see if I can get a little demo of it going to see if it works lol
gattytto
@gattytto
does engo require X running in linux? or can it be used to send stuff directly to the framebuffer?
Noofbiz
@Noofbiz
We use glfw or sdl as window management on linux. I know they both support both X and Wayland, but I'm not sure about that one
Anna Sirota
@anka-sirota
Hi all! Got a question about pausing in engo --- it looks like there used to be a PauseSystem with a demo, but it appears to have been removed. What is the current pattern for pausing the game?
Noofbiz
@Noofbiz
Yeah, it appears there used to be one but it wasn't general purpose and it's really just better to roll your own if you need it
Anna Sirota
@anka-sirota
by rolling your own you mean implementing something that makes relevant system's Update skip whatever game logic they are running temporarily?
(just trying to figure out if maybe there's a more generic way to do that that I've missed)
Noofbiz
@Noofbiz
Yeah what I have done before is add a pause component to the elements you want to pause, then at the top of all the systems you want to pause's update check the pause component to see if you just continue to the next entity
The problem is that skip has to be in the update of the systems you want to pause, so you have to do it yourself kinda deal
Anna Sirota
@anka-sirota
makes sense, will have to go for the per-system DIY pause then. Thank you for the answer!
Noofbiz
@Noofbiz
Added an issue #737 to add a demo since it's probably going to be useful for most games
Anna Sirota
@anka-sirota
after playing around with different implementations of a pause and run into an issue that might indicate that some kind of generic pausing mechanism might be better than a custom one
basically, having a lot of animated entities means having a need to pause the AnimationSystem as well as any game logic related systems, so what I had to do is copy-paste the whole AnimationSystem just to introduce a global animation speed into it https://github.com/anka-sirota/gaia-2d/blob/020c69a4e0b7d7f390e86a912c49fe2458f5bff1/common_overrides/animation.go#L142
Anna Sirota
@anka-sirota
...which is kind of ugly. I think I'll remove sprite animation completely, kind of RimWorld style, all the other systems that have to be paused operate in in-game time, so pausing them is not a problem
Noofbiz
@Noofbiz
What do you mean by in game time, the animation system uses the same dt from the timer as the rest
But that raises a great point, why not just pause the dt from the timer?
Every frame your dt would just be zero
It should be really simple to add and would be perfect
Noofbiz
@Noofbiz
#742 adds the ability to pause the clock
Should we also pause input? So systems that use input also don't update any longer?
Anna Sirota
@anka-sirota

But that raises a great point, why not just pause the dt from the timer?

That's what I also thought originally, but then realised that some of the systems that utilise rendering, e.g. HUD or menu elements should still react to input and redraw, which leads to the need to make pause configurable per system, I guess? Like a flag or a message per system, not sure exactly

Anna Sirota
@anka-sirota

What do you mean by in game time

for the game logic that doesn't really need to happen every tick (such as "AI" state changes, or looking for targets on the map), I've improvised a per-second message (https://github.com/anka-sirota/gaia-2d/blob/020c69a4e0b7d7f390e86a912c49fe2458f5bff1/systems/time.go#L45) that any system, that needs to Update less frequently, can listen to and decide whether an Update has to happen

golang is fairly new to me, so my decomposition skillz are not that great with it :grimacing: , but so far it seems to suit the purpose
Noofbiz
@Noofbiz
Actually I think the most effective way is still do do it at the systems level
Would just adding pause ability to common systems work?
Actually couldn't you just remove the entity from the system?
That would help because then the system could still work with other things like UI elements or overheads
Anna Sirota
@anka-sirota
sorry, please disregard my message about the rendering: after looking into the PR in more details, finally figured out that engo.Time.Pause does exactly what's needed without the need to override AnimationSystem(https://github.com/anka-sirota/gaia-2d/commit/650171b67bb807969aa317ef0b72683e7e5635da#diff-52efb8b7458af999923de7045b5782a8R75).
Perfect, thank you, that was super quick and useful!
Noofbiz
@Noofbiz
It'll be easier to do. I'll try adding a pause menu to the adventure demo to show
Noofbiz
@Noofbiz
#743 I updated the adventure demo to allow you to pause the hero. I like this way because it lets you add a pause menu or something while the game is paused
Craig Gardner
@cgardner
Hello Everybody. I'm going through the TrafficManager tutorial and on Step 1, I'm getting an error that says Unable to load texture. resource not loaded by 'FileLoader': "assets/city.png" I've verified that the file exists. What am I doing wrong?
Craig Gardner
@cgardner
It turned out that it was actually looking for assets/assets/city.png