Lostcast 175: Ahi Moment


  • LDG

    Entity/component systems, collision, prototyping, and more.

    Show notes


  • Tiger Hat

    Exclusive pre-release podcast demonstrates the depressing fact that I’m now ill equipped to listen to MP3 files.


  • LDG

    haha yeah I imagine the podcasts come through for most via iTunes or something similar (mobile app??)
    so listening on Patreon is probably not ideal


  • Tiger Hat

    @richtaur said in Lostcast 175: Ahi Moment:

    something similar (mobile app??)

    The cool kids seem to be using Pocket Casts right now.


  • Jammer

    Yeah that’s a good point. I can get an audio track from bandcamp on my phone, but it does take some steps. Usually download on home computer, add to itunes library. iTunes library puts it in my music in “the cloud” and then it appears on my phone to be streamed/downloaded. Ah the future, so convenient for somethings, makes others a pain in the butt.



  • I get this and other podcasts via BeyondPod and it goes quite well. Offline listening, control over what gets downloaded/deleted when etc. Different volume levels per podcast… which usually works. I’m on Android, so YMMV.


  • Jammer

    Always enjoy the tech structure talk, so wrote down somethings as it was playing in my ears.

    Unity being an influencer on ECS

    Same for me, working with unity & libgdx ecs has been a large contributor to me wanting to re-design melonjs to work as an ECS. Though that said, we would keep the scenegraph aspects to it. Each transform component would be relative to its parent’s entity transform. Tricky thing is for me, things like Unity & LibGDX are in a super solid state. MelonJS doesn’t have a ton of users, so it’s tricky for me to want to invest in it, even for just myself and a few others. Though with lower user base, there’s less games to break ;)

    C++

    The comment on C++ where it’s a powerful tool where you have a lot of flexibility, “oh my framework i’m currently using doesnt do that”. C++ doesn’t really solve that problem. Aside from maybe proper TCP/UDP networking, you can accomplish whatever features you need in a web browser.

    Now performance is one where C++ leans over javascript quite significantly. Having that kind of power to work with memory allows you to be super efficient. With garbage collection and other downsides of javascript for games, we just can’t get that performance. That’s where you will work hard in JS over C++.

    Though I think C++ memory management isn’t a downside, the size of the language is. There’s so much controversy in the industry on using STL, not using it, using templates, boost, etc. Do I just do C with classes? Should I write my own allocator? There’s just a lot to learn there. Also aside from using something like Unreal engine, you do have to implement and handle a lot of cross platform build stuff. SDL has pretty good input handling and such, but you still need to cross compile, load dlls vs dysyms. Managing windows and multiple monitors can still be tricky, I remember Jonathan Blow tweeting about that not long ago.

    Ahi

    With Ahi are you avoiding a scene graph entirely then? As you mentioned O(n^n) being harsh in JS. Thing with having a scenegraph is moving things together with a parent transform. It’s why I wouldn’t want to ditch the scenegraph in Melon.

    More my recent projects are using ECS, but my older stuff like snowball is very much scene graph contains stuff. Each entry in the scenegraph has its draw and update methods. Update processes relevant input, collision responses, and serious business. Draw just does the drawing. All updates in the game are processed, then all draws are processed. Not sure if this goes along with the “scripts” style you mentioned, but it’s what I’ve done a majority of the time.


  • Tiger Hat

    I found c++ made massive amounts of sense, to the point where memory management seemed far more reasonable than the GC wrangling I’ve had to do in Python/C#.

    I never really hit the community that much, so I’ve largely missed the debates, yeah I used Boost, and STL, because they gave me stuff I needed, and I feel most at home in python where you’re encouraged to import anything you possibly can. … plus most holy wars in IT are pointless and petty. (although, Android is much better than iOS).

    Have you guys considered jumping off of the HTML5 merry-go-round again? Do you think there’s a level of technical debt you’re creating by maintaining an entire stack?


  • Jammer

    Android is not better than iOS, it’s an alternative. Depends on what you are after, it might be better for you personally. It’s not better for me :)

    I think if Geoff & Matt wanted to, they could probably switch stacks for a new property. I’ve been thinking of doing a prototype idea I have using Unity, as I haven’t really done a proper solo project with it. As they discovered already though, it’s not worth switching for a game you already have.



  • Everyone has their own points of friction. Bridging that gap of worrying about optimization and actually recognizing where optimization is required is a constant.

    Is wringing my hands about doing things the optimal way all the time stopping me from making my game, or are my tools stopping me from making my game? I’ve fallen on my face each time with this so far. It’s always encouraging to hear of others breaking through.

    I may prefer Android to iOS, as I do most non-walled-garden platforms… but I recognize the things they do well, and the market saturation they have. I’d be a fool to not consider shipping for iOS should I churn out a mobile game. Perhaps I’d ship Android first, then if required recruit an iOS colleague… or maybe I’d take that as the chance to learn… but I’ll cross that bridge when I get there.

    I loved all the ECS and just general separation of concerns, and at what layers or levels different approaches make sense. You may work in HTML5+JS, but this kind of stuff resonates in a really broad way. Always love that.

    And I got hearty, audible laughs at the “I do whatever I want on the weekend Matt” telling the “you could have been fixing Soul Thief bugs Matt” to “SHUT UP” … and also at the notion that Geoff didn’t branch for the code he was working on, but rather lies there in bed thinking about JavaScript code.


  • LDG

    @salmonmoose said in Lostcast 175: Ahi Moment:

    Have you guys considered jumping off of the HTML5 merry-go-round again? Do you think there’s a level of technical debt you’re creating by maintaining an entire stack?

    A considerable chunk of 2015 was spent trying to do just that. We investigated a couple different options, from an SDL approach to straight-up C++. Unity seemed the best option so Geoff began learning. Sometime around there is when the embarrassing AWL2 Kickstarter failed, so we went back to the drawing board. And that meant HTML5, where we had both experience and a ton of good code written.

    The technical debt is real, but I imagine no platform is without it (or other similar complaints). We’d probably switch to Unity if we could, but we’re poor and out of time and HTML5 is cool so off we go.


  • LDG

    @jiiimbot said in Lostcast 175: Ahi Moment:

    Is wringing my hands about doing things the optimal way all the time stopping me from making my game, or are my tools stopping me from making my game? I’ve fallen on my face each time with this so far. It’s always encouraging to hear of others breaking through.

    Even the BEST tools the industry has to offer are mind-blowingly complicated, difficult to learn, laborious to use, and even if you disagree with all that, they get in your way occasionally, period. More and more I’m convinced that the simplest tool is the best tool.

    I loved all the ECS and just general separation of concerns, and at what layers or levels different approaches make sense. You may work in HTML5+JS, but this kind of stuff resonates in a really broad way. Always love that.

    Cool yeah we try to be as generalist as possible but sometimes we get ass-deep in some HTML5 specific stuff ;) Or Unity! sometimes

    And I got hearty, audible laughs at the “I do whatever I want on the weekend Matt” telling the “you could have been fixing Soul Thief bugs Matt” to “SHUT UP” … and also at the notion that Geoff didn’t branch for the code he was working on, but rather lies there in bed thinking about JavaScript code.

    NICE! this is great because if you had mentioned this stuff a week or two later, I’d have no idea what you’re talking about. (That happens a lot, where people talk about Lostcast stuff we don’t recall haha.) It’s fresh on the mind so I got a good chuckle from this :D

    good feels today!


  • Tiger Hat

    @richtaur said in Lostcast 175: Ahi Moment:

    The technical debt is real, but I imagine no platform is without it (or other similar complaints). We’d probably switch to Unity if we could, but we’re poor and out of time and HTML5 is cool so off we go.

    Yeah, nothing is perfect, shifting to a more supported platform does give you the community aspect, and offsets the debt aspect significantly - other things creep in, there’s certainly a “Unity” way of doing things, and this isn’t compatible with, say, Unreal Engine. But I get the impression that you’re fighting against problems that you’re not able, or not especially interested in fixing (the speed of canvas and the Node.js stack in particular seem like friction points). This makes me a bit sad - because despite sucking at it, I really quite like AWL2, and am kind of interested what other games are hidden away in your secret labs - a more streamlined toolchain may expose that quicker :D

    From experience I think you could actually lift large amounts of your code straight into Unity, particularly if you initially started with UnityScript rather than going down the c-sharp route (you can mix and match later). I’m absolutely happy to coach or answer anyone’s questions about Unity - I’m getting to the point where I understand far more about the engine than I’m actually using, because I keep playing with things rather than getting things done :)


  • Patron

    @salmonmoose said in Lostcast 175: Ahi Moment:

    I’m getting to the point where I understand far more about the engine than I’m actually using, because I keep playing with things rather than getting things done :)

    Haha, that’s the spirit! xD


  • LDG

    pretension ahead …!

    There’s this term I learned while watching stupid cooking shows – mise en place – which means “putting in place” which isn’t a perfect translation but basically it means everything is where you need it and you’re ready to just cook.

    It means you have your recipe, your vegetables are sliced, your meat is marinated, your spices are mixed and ready, you have adequate cookware and utensils – you’re ready to just cook and not worry about setup or preparation.

    In the 4+ years I’ve been making games fulltime, I’ve pretty much never had this feeling with regards to game making. There’s always some blockade or hurdle, either the tech or my own know-how is failing me, and rather than tapping into my creative juices I’m constantly doubling down on the technology and creativity takes a back seat.

    Our game engine (and my knowledge of it) is very close to getting there, it just needs some gaps closed. Once those gaps are gone I want to see about reaching that mise en place feeling and what I’m able to do with it. I love the technology part of making games and could talk about it all day, but more and more I want to get beyond it and see the other side.


Log in to reply