Lostcast 131


  • Tiger Hat

    I know about that Stonemaier website from THE ORIGINAL Kickstarter podcast called Funding The Dream which has been around since the early days of Kickstarter.


  • Tiger Hat

    Another good Lostcast - thanks guys :) I got slightly distracted on the train into work and zoned back in to @richtaur saying “…the tongue will come back faster than it normally would…” - had to rewind a few minutes when I heard that!


  • LDG

    Wowwwww @TokyoDan over 250 episodes this is a goldmine!

    @anthony haha we often get lost into the weeds but usually not THAT lost >.<


  • Jammer

    Noooo, data loss :(. It happens to the best of us guys. Anyways, wrote down some things as the episode was playing:

    It’s interesting to talk about not doing too much art up front, but also writing code for the long term big picture. I agree with doing so, but you have to avoid over engineering. Here’s an example. On my stealth prototype, i wanted this piece of the wall show you “Press E to hack”. So in a collider triggers showing this message, and also triggers the ability to well Press E. This can very well be any sort of interactive thing in the level, so I started with a UI trigger. I added the concept of Hooks, things it can fire when the player is in range. I then added a hook that enables hacking in the game. But it gets more complicated as i need to know what hack is enabled. What the hack is supposed to it. It started feeling convoluted and just wrong really quickly. So, I went to something more specific: https://github.com/agmcleod/stealthprototype/blob/e6c9e845331131134c3378d2bfe743b4a63d9212/core/src/com/agmcleod/sp/HackableComponent.java

    The hackable component is what was the UI trigger. But it’s now more coupled to the idea of a hacking item than any interaction. It has a few states: Enabled (whether the player is in range), Key pressed, and if the item is currently being hacked. pressing the button while in range turns hacking on, and allows this guy to process: https://github.com/agmcleod/stealthprototype/blob/e6c9e845331131134c3378d2bfe743b4a63d9212/core/src/com/agmcleod/sp/HackAction.java. It’s a simple countdown that shows a bar filling up. When it’s done, the Hackable component, the hack action are destroyed.

    Second point:

    Re open source: html5 i agree, you have web sharability and familiar tech, but that alone isn’t necessarily worth it. Though available code can make your life easier, or allow you to dig into the metal when you need to. I think unreal engine 4 is a good example of this. While the code is not technically open source, it is readily available.

    As far as html5 perf goes, i’ve found the main bottlenecks in my games to be drawing. I haven’t built anything as heavy as AWL, but when i bench mark the drawing, it takes up a very large chunk of the 16.6ms. Good use of object pooling helps a lot against the JS slowness. Though i wonder if the majority of your problems have been with nw.js and that runtime. I only have deployed games in the browser, cocoonjs and cordova.

    Third point

    I think consoles is the one sole reason I would consider using unity. Though I don’t really like the whole certification process either. Sounds painful :(


  • LDG

    The data loss was my fault. I was trying out Audio Dope, recording on my Windows box instead of my trusty Garage Band on OS X.

    Re: HTML5 performance, drawing is generally the bottleneck for us in Chrome. Collision detection and scene graph traversal can also take up some time. The latter really bit us when trying to port to other “web-based” platforms like Wii U and the Nintendo Web Framework. Their rendering is super fast, but the bottlenecks ended up being array traversal and other core JavaScript execution. NW.js is pretty close to Chrome in terms of performance and execution. The main problem is the stability as it can crash quite frequently compared to Chrome.


  • Patron

    @geoffb said:

    The data loss was my fault. I was trying out Audio Dope, recording on my Windows box instead of my trusty Garage Band on OS X.

    Audacity?

    Or even better, Reaper!

    @geoffb said:

    drawing is generally the bottleneck

    WebGL.

    the bottlenecks ended up being array traversal

    Typed Arrays.

    BAM! Problem solved (after one or two years of re-writing).

    But, seriously guys, why not Phaser, Turbulenz or even PlayCanvas?
    PlayCanvas seemed like the most obvious choice for me.


  • Jammer

    They started it before phaser was really the thing it is today. When i started doing small projects in early 2013, impact was the major player. There was also limejs, createjs, melonjs, cocos2d-html5. Cocos just confused me, Lime looked too simple, impact had the price tag. MelonJS just kinda worked out for me, and I found myself contributing to it over time. Now we have a webgl renderer, and a fairly decent game engine. All we gotta do is stop breaking the API every 2.x release lol.


  • LDG

    Eeeeevery single HTML5 solution comes with the extra baggage of having to wrap it up yourself, and the tangled web of dependencies that come with NWJS, Greenworks etc. Also, don’tcha sometimes just feel like learning something new? It’s fun!

    NEW PODCAST TODAY! get ready for words comin’ atcha


  • LDG

    @Josue said:

    But, seriously guys, why not Phaser, Turbulenz or even PlayCanvas?

    Steam is far and away our most profitable platform. To that end, I’m not interested in cobbling together desktop games using web tech and NW.js or Atom. I want to spend less time wrangling tech and more time working on game design and shipping games.


  • Jammer

    Mhmm. Web tech is good when you want to leverage existing skills and be more productive. But really when you’re using a wrapper to load an abstraction, to make it “desktop-like” you need to rethink your ideas. With games, it really comes down to how strong the abstraction is for your platform. WebGL and OpenGL both leverage graphics skills, and you’re basically doing the same thing. This is why i like libgdx. It abstracts the OpenGL & OpenGL ES code to one API, and then gives you a game loop, math functions, batch drawing, box2d integration, while utilizing the JVM and java libraries to build a native executable.

    Don’t get me wrong though, the web stack has its uses. We have an android dev working with us on contract. Last week I started showing him how I build our crossplatform apps using Cordova. He was impressed how quickly you can plug some screens together using handlebars, with an html+css layout. With android native layout stuff, it takes a lot longer, and is way more finnicky.


  • Patron

    @agmcleod said:

    They started it before phaser was really the thing it is today.

    Yeah, and that’s why they wrote Djinn.
    My question was why didn’t they switch from Djinn to some proeminent HTML5 engine available today.

    I totally get why they didn’t want to keep maintaining Djinn anymore. Working within an editor is so much easier! And because of their vast experience in webdev, I thought the most obvious choice would be something like PlayCanvas.

    But as Matt and Geoff pointed out, it all comes down to simplifying your workflow. Exporting games from Unity couldn’t be easier!

    With that said, I wouldn’t be so sure that learning how to work in a completely new environment using a new language (in Matt’s case, I belive) is less of a headache than rolling your own tool for authoring HTML5 games, or adapting existing tools. You seemed to be doing just fine with NW.js. Sure, making AWL executables wasn’t exactly an easy task, but you only had to do it once in a while.
    In Turbulenz’s and Cocos2d-X’s cases, they even have their own native wrappers!

    @richtaur said:

    Also, don’tcha sometimes just feel like learning something new? It’s fun!

    Sure, but you wouldn’t try to make a NES game in Forth just because of that, would you?


  • Jammer

    With that said, I wouldn’t be so sure that learning how to work in a completely new environment using a new language (in Matt’s case, I belive) is less of a headache than rolling your own tool for authoring HTML5 games, or adapting existing tools.

    Yes and no. Learning a language like C# isn’t all that daunting from javascript, especially since most programmers touch Java in school. There’s also the fact that unity makes a lot of tricky tasks simple, it’s a matter of learning how to use their collision system, but it’s all right there. As Geoff said before, it allows him to focus on the problems that interest him more so than the ones that just frustrate him.


  • Patron

    Yeah, Unity will probably be the best choice in the long-run.
    But I still think automating their publishing process and switching to Phaser would require less effort in the short term.

    Also, have I mentioned I really don’t like Unity? And Windows? And C#?


  • Jammer

    I’m not a fan of unity either. Feels like cheating ;)

    Nah just kidding, but I haven’t really found my love for it. It really rubbed me the wrong way last time I used it as a jam, as it constantly got in the way of team work, rather than supporting it. Also it’s just not really my thing. It seems easy to get into a “component hell” of scripts and object lookups. I really like having my classes, and interfaces in Java, laying everything out the way I want to. Libgdx really gets out of the way for you I find. Even melonjs, while it’s way more opinionated than libgdx, it’s fairly customizable too.

    As far as windows, I really want to use a pc with windows for my next dev machine. Just to switch it up, and save some money on hardware costs. But ergonomics, and my need to do iOS builds will keep me on mac for now.


  • Patron

    @agmcleod said:

    I’m not a fan of unity either. Feels like cheating ;)

    Nah just kidding, but I haven’t really found my love for it. It really rubbed me the wrong way last time I used it as a jam […]

    I haven’t really spent much time with Unity, really.
    But, from what I can tell, the editor is really amazing! I wish there was something similar for HTML5… Or just Javascript for that matter.

    I just really don’t want to switch languages or have to learn other people’s APIs.

    As far as windows, I really want to use a pc with windows for my next dev machine. Just to switch it up, and save some money on hardware costs. But ergonomics, and my need to do iOS builds will keep me on mac for now.

    Virtual machines, maybe? I guess it’s enough for building Xcode projects.

    Since my Windows partition got FUBAR I’ve been using Ubuntu solely, and I’ve never looked behind.
    Sure, playing most AAA games can be tricky, but I don’t have any of those.


  • Jammer

    Running a mac vm is definitely breaking some licensing or legal rules, but outside of that it might not even work. Feels like something semi dangerous to bet on. But yeah the bigger problem is the ergonomics with the keyboard. Command allows me to use my thumb & pointer more. Where as windows hotkeys are more dependent on ctrl & shift. You can remap keys a bit, but using caps lock as ctrl felt really odd :)


  • Patron

    @agmcleod said:

    Running a mac vm is definitely breaking some licensing or legal rules,

    Well, the legality of Hackintoshes is a very controversial topic. But yeah, it breaks the OS X EULA.

    But, really, who cares?

    but outside of that it might not even work. Feels like something semi dangerous to bet on.

    Dangerous? In what sense? Legally? I doubt it.
    No individual has ever been prosecuted for building a Hackintosh.
    Heck, no company has ever been prosecuted just for building Hackintoshes. Apple only really cares if you’re making money out of it, of course.

    And Hackintosh work, for the most part, flawlessly. Sure, OS X might not support your shiny new AMD GPU, but if you’re only gonna use it for building IOS apps, I doubt you’ll have any kind of trouble (except for actually installing OS X in a virtual machine).

    But yeah the bigger problem is the ergonomics with the keyboard. Command allows me to use my thumb & pointer more. Where as windows hotkeys are more dependent on ctrl & shift. You can remap keys a bit, but using caps lock as ctrl felt really odd :)

    Well, can’t you remap Ctrl to the Alt key?
    I guess it all just a question of getting used to.


  • Jammer

    By dangerous, i mean if you can’t get the VM to be stable, or certain software to install, you’re stuffed for doing iOS builds :). My point on breaking the EULA was a small one, my main concern would be stability.

    I think you’re right it would take getting used to, but i think it would also screw me up in other situations. I often go to LANs where computers are provided. Can be a pain to worry about setting up autohotkey or other alternatives, given games like starcraft use ctrl. I think caps lock is a bit better than alt, as alt you still use a bent finger to press down.


Log in to reply