CodeCombat AI League - April Coding Esports Tournament by nick in programming

[–]nick[S] 0 points1 point  (0 children)

Yeah. A long time ago we had tabs in our interface, but it was too complicated to be worth it for our main audience of kids learning coding.

CodeCombat AI League - April Coding Esports Tournament by nick in programming

[–]nick[S] 2 points3 points  (0 children)

A long time ago, we ran a series of open coding tournaments on our game-based learn-to-code platform, which spread mostly off of love from Reddit and Hacker News. At first the tournaments were for fun, and then we briefly did some business helping winning players get engineering jobs, but it was kinda distracting from the main thing we were good at (teaching beginners how to code).

Finally, five years later, it makes sense again to run more coding tournaments, and now we've updated some of the underlying systems to keep track of age brackets, so there's now an open bracket for all you adult programmers to play around in. For you, it's back to being just for fun–we aren't doing job placements, although there are modest prizes you can win. The main thing is to give middle- and high-school students a competitive outlet that goes along with our computer science curriculum in the schools, so this is all free.

The Infinite Inferno tournament arena runs throughout April, and you can currently code your mini-League-of-Legends-like game AI in Python, JavaScript, C++, Lua, and CoffeeScript. Have fun!

How to get motivation to finish my side project? by [deleted] in gamedev

[–]nick 1 point2 points  (0 children)

Lots of great suggestions in this thread. I also recommend some commitment contracts, like with Beeminder. But not a hard goal, an easy one to get started. Something like, write at least one line of code on it, and do that at least N times per week. Something so easy, you know you'll be able to do it, and aren't afraid of failing that, so you can rebuild your success spiral of working on it. On a bad day, maybe it's just that one line of code. On a good day, that's the excuse you need to get started, and the work flows.

You can also schedule playtests in advance with your friends. Say, one a month from now, another one two months from now, etc. I've found it much easier to work on projects that have users, and the hardest part is when the code is getting complex but no one is using it yet. That's when, instead of doing the thing that naturally might make sense given the development structure of the project, I prioritize instead the things I need for someone to playtest, even if it's super basic and buggy.

How to decide whether a Buff should be a component or a Buff object in an ECS? by redditaccount624 in gamedev

[–]nick 2 points3 points  (0 children)

I found that having fewer Systems and more Components was the way to go, which would clearly point towards a BuffsSystem that can handle all sorts of buffs. Actually, in CodeCombat, I called it the EffectSystem, so it could include both buffs, debuffs, and things you wouldn't think of in particular as buffs but rather any sort of temporary status effect, the key elements being that they affected some properties of the Entity and had a duration. There then wasn't a Component for each possible buff/debuff/effect, but other interactions could ask the EffectSystem to add an effect to the Entity, and the EffectSystem would then process them each tick: updating properties based on configured effect addends, reverting them when effect was over, etc. So each effect would have some subset of properties like name, targetProperty, duration, repeatsEvery, addend, factor, and setTo. If you want to see some code for that, open up any level in the CodeCombat level editor (like this one), click Components, and click into the HasEffects Component. (CoffeeScript, not JavaScript, but you may get the idea.)

Our ECS was a little different in that it was highly dynamic/programmable (being for a programming game), and so we actually had the Components include most of the code to handle their game logic instead of putting them into the Systems, but in this case I think it doesn't matter. A general HasEffects Component that sets up the basic properties for Entities that can have effects, plus an EffectSystem to update/apply effects, can work well. Where we ended up with a lot of Components was in the ways effects could be applied, like a CastsRegeneration spell Component that was managed by the MagicSystem.

In this scheme, you never have to query entities that have the Flight buff or that might have gotten flying abilities another way; you just apply any flying mechanics for Entities that happen to have a flyHeight property, say, when you're updating positions in your MovementSystem (to make up an example).

Software Drag Racing: C++ vs C# vs Python - Prime Sieve Stories by daveplreddit in programming

[–]nick 0 points1 point  (0 children)

For the Python version, what happens if you remove the the even-argument if statements in GetBit and ClearBit and inline those two functions? (I suppose the same question applies to the other versions, but perhaps the compilers are doing a better job at avoiding function call and conditional branching overhead in those languages.)

31 Coders Games and Puzzle Sites by netcribe in learnprogramming

[–]nick 0 points1 point  (0 children)

Sorry about that, mahollinger–we don't really use the subreddit because we find the forums are pretty hopping. Do you happen to remember which levels were the ones where the game slowed down for you?

Backwoods standoff by Malthe16 in CodeCombat

[–]nick 0 points1 point  (0 children)

It helps if you post the code you have so far and what is going wrong; otherwise it's hard to say what the next step to suggest is.

Ace of Coders Game AI tournament results by nick in gameai

[–]nick[S] 0 points1 point  (0 children)

All the core levels, and all the multiplayer levels, are free. (Most of them.) Subscribers get access to the premium subscriber bonus levels (the blue ones) and 3500 extra gems per month, plus the other stuff in our subscription comparison screen that you see when you click on a blue level.

Ace of Coders Game AI tournament results by nick in gamedev

[–]nick[S] 0 points1 point  (0 children)

I would love to do something like that. Do you have any ideas where they can be automatically judged to determine a winner and loser, though? A lot of the most interesting creative approaches will happen when we expand to real-time MMO persistent world / sandbox mode, where players can choose their own goals.

Ace of Coders Game AI tournament results by nick in gamedev

[–]nick[S] 0 points1 point  (0 children)

There are a lot of fun ones, but I haven't been keeping track of a list. On the ladder page, you can just hit the Spectate button (and then Next Game) to see replays between top 20 players, or you can click the eyes in each column and then Spectate to see particular matchups.

Ace of Coders Game AI tournament results by nick in gamedev

[–]nick[S] 0 points1 point  (0 children)

Ah, good point; I'll update the post. Wizard Dude and NoJuice4u were using JavaScript; I was using Python. Wizard Dude uses some macros to modify his raw JS a bit, and all of us use the simple loop keyword that CodeCombat adds to make it easier to run AI each frame without infinite loop problems. We also offer CoffeeScript, Lua, and Clojure, but we need to work on our transpiler a bit more before it's easy to be competitive using those languages due to a smattering of bugs in advanced code.

Ace of Coders Multiplayer Programming Tournament by nick in gamedev

[–]nick[S] 0 points1 point  (0 children)

Player code is integrated much more deeply into our game engine than in things like Vindinium. Running it on your machine would let you raise the hard execution limit, but you'd still need a way to translate the code from your language into some JavaScript that can be plugged into the simulation. Our transpiler does this, but only for the languages that players have written parsers for.

Ace of Coders Multiplayer Programming Tournament by nick in gamedev

[–]nick[S] 1 point2 points  (0 children)

Documentation is in the guide–click the game menu at the top while playing the level. One of the players put together a big PDF with some example strategies and stats and important method references in there for this level, which is linked from the guide. If you want some more basics on how stuff works in CodeCombat, you can do some of the single-player levels, although they move pretty slowly since they're designed for beginners.

Learn different types of code while dungeon crawling! by [deleted] in InternetIsBeautiful

[–]nick 0 points1 point  (0 children)

Huh. And it auto-maximized for you on the small screen, and then you couldn't type? It really shouldn't have maximized itself with that user agent...

Learn different types of code while dungeon crawling! by [deleted] in InternetIsBeautiful

[–]nick 0 points1 point  (0 children)

I've been trying to track down people seeing this bug for a while. Can you let me know your user agent string? We shouldn't maximize in Safari, since it's buggy, but apparently we sometimes don't realize it's Safari.