You’re almost there! The board you are trying to access requires a Trello account.Well heck you too, Trello.
Towards the end of development of IguaRPG, my code-change-to-reload time was slowing down due to the number of simultaneous HTTP requests needed to get all of the sprites and audio files!
I've had this problem in game dev too only to a worse degree because scala compiler is notoriously slow (30s rebuild times pretty common). I've been theorizing a language that lets you change game code while the program is running (for certain classes of changes)..... Probably will be a long time before I actually do it, but definitely relate to the struggle lol.
I can even imagine it doing something like excluding resources / dummying them out when you only need to test subsets of the game (Music has always taken me the longest to load so often not loading most of the game music helps me).
jukebox.play(Country).warm(NewDesertOracle, Bluehouse, Shop, DesertField, Witch);
From: https://github.com/hubol/igua-rpg/blob/518103cf89ff2e0921af74631d750d42befaff6f/src/levels/desertTown.ts#L39Also I've heard of Trello before, have you used it a lot already? I've been thinking of using one of those corporate task organizer things but I'm bad at adapting new workflows lol.
The compiler problem is interesting. Some languages(?) have a "hot swap" feature. I know that I was able to use this when I was working with Java in Eclipse and maybe JetBrains. Basically you run the program with some special configuration and, while the program is running, certain changes to Java source files are picked up. This stackoverflow discussion from 2018 indicates that might not exist for Scala: https://stackoverflow.com/questions/50696440/can-hot-swap-be-used-with-scalaYeah, it's definitely harder to figure out how to do stuff in Scala rather than Java. They do have a build tool that does rolling re-compilation (saves information about previously-compiled code in between recompiles) which makes things more bearable - but still kind of an annoying language for some aspects of game programming I find.
I think this problem is probably why some game engines embed scripting engines for the game logic. That way the big C++ (or whatever) engine gets compiled less frequently and your scripts are reloaded and reinterpreted by the engine.
Dummying them out sounds interesting, but also sounds a bit overkill for what I've done in my awesome game development career. I know that for certain (all?) formats for sound, you can stream the file to the audio device. This could be useful for music, since you wouldn't have to wait for the entire file to load, just enough to fill the buffer to send to the audio device.Oh actually for browser, loading things asynchronously sounds like a better solution, since that's how browsers are supposed to work anyway. Sensible behavior for when the files aren't warmed probably is the trickiest part - but past that it's probably good enough to get most of the media loaded seamlessly. For my desktop game I front-loaded all media files at the start, but when I think about it doing something similar probably wouldn't be a huge issue, and would reduce the initial start-up time by a lot.
In IguaRPG, I didn't do this because I didn't learn how. Maybe someday... But what I did there was load the music asynchronously and as-needed. When you enter the desert town, for example, the music files for the field, bar, inn, oracle, and witch's house all start to load (I called this "warming"). This is done with the following code written in the start-up of each "level" (roughly equivalent to the "Room Start" event of a Game Maker "room"):
...
I've been wanting to make my own language for game programming anyway.
NativeDependencies Checking that native dependencies are installed to .smooch/native-deps
NativeDependencies Native dependencies appear to be installed.
Ffmpeg Set Ffmpeg path to .smooch/native-deps/node_modules/@ffmpeg-installer/win32-x64/ffmpeg.exe
SmoochJsonWatcher Started
FsWatcher Started with subscriptions: audiCnv
FsWatcher Ignored Message #0 (Catch-up) <no events>{
...
"devDependencies": {
"smooch": "^1.0.0",
"parcel": "^9.0.0",
}
}I want to see it!!!!!!!!!!! Do it!!!!!!I actually did start working on a language for game stuff - doesn't have any of the stuff I was talking about, but it *does* have an actual type system which I'm playing around with a lot. Main features are ADTs and also a function overload system that distinguishes functions of the same name by the argument of the first type. (There will also eventually be polymorphism but I haven't needed it yet). Basically I'm messing around with various type design decisions to see what works and what doesn't.
Main features are ADTs and also a function overload system that distinguishes functions of the same name by the argument of the first type.It only makes sense that ducklang would have some form of duck typing.
What's zipping the audio files for? I figure it can't be adding any more compression, so just for packaging?
I've avoided playing with TS mostly because I haven't needed to, but I secretly hold the idea that eventually JS will get optional typing and TS will become more of a niche utility for its extra features at that time. In the same way that LESS and SASS have fallen away as CSS has become more powerful, we seem to move towards fewer steps and less bundling where possible.
I actually did start working on a language for game stuff - doesn't have any of the stuff I was talking about, but it *does* have an actual type system which I'm playing around with a lot. Main features are ADTs and also a function overload system that distinguishes functions of the same name by the argument of the first type. (There will also eventually be polymorphism but I haven't needed it yet). Basically I'm messing around with various type design decisions to see what works and what doesn't.
<code sample>
(syntax highlighter scuffed bc it's hard to keep up with it while actively making the language :U)
The is keyword seems really nice, I wish TypeScript had it. Your syntax for indexing tuples is cool!Yeah implementing ADT/union types in TypeScript is doable, but very bulky, when really they shouldn't be that much more complicated than an advanced enum. The ideal syntax is probably a pattern-matching syntax which would look something like:
- What is no on line 3?It's just another case for the ADT, one that takes no arguments. Basically just a default, altho kinda unnecessary since it has the same meaning as frame:(0) as defined.
- Are you going to implement some kind of checker that runs in the editor? Is that thing separate from a syntax highlighter? I have no clue ^_^I know what youre talking about, that is different from syntax highlighting, but not sure what it's called either. Rn I almost exclusively work in Sublime Text, which doesn't really do that kind of error highlighting since it's just a text editor at heart (maybe there is some plugin/package that does for some languages tho idk).
It's not really something you can accomplish with React out-of-the-box, in particular declaring styles in your component files in a nice way.
The HTML file has bastard attributes for boolean expressions and looping (Haha, looking at Vue, they also have this...)
<script>
categories.forEach(cat => {
const elemLi = document.createElement("li"); // List item
const elemLabel = document.createElement("label"); // Label
// Span
const elemSpan = document.createElement("span");
elemSpan.innerText = cat.msg;
// Checkbox
const elemCheck = document.createElement("input");
elemCheck.type = "checkbox";
elemCheck.id = cat.id;
elemCheck.checked = true;
// Attach elements to DOM
listElem.appendChild(elemLi);
elemLi.appendChild(elemLabel);
elemLabel.append(elemCheck);
elemLabel.append(elemSpan);
});
</script>
<li v-for="cat in categories">
<label>
<input type="checkbox" checked="checked" v-bind:id="cat.id">
<span>{{ cat.value }}</span>
</label>
</li>
Rejected because I used TypeScript in the live programming examination. Told I needed to brush up on my JavaScript skills.Ugh, that's frustrating. Reviewers look for any possible reason to exclude candidates simply because it makes their lives easier. I'm sorry about that.
Finding a dev job is very hard and humiliating...
Best of luck getting your foot in the door, ducko. It's rough out there right now. We've gone from companies over-hiring during the pandemic, to panicking at signs of a recession. It's resulted in lots of people flooding the market and few companies willing to hire right now. You're a good developer though, and I'm sure that eventually you'll be noticed.
I have been working part-time at a math tutoring center. Definitely working with kids is quite fulfilling I feel (even though in the context of math there are more negative interactions than there would be else-wise). I have also been feeling the stress of not being employed full-time though..... I want health insurance. But anyway, that's hype tho - working a children's museum sounds sick honestly.
Also I'll try to sheck out ur games sometime (I get updates when they release from itch.io actually :p)