Skip to main content

Game Critique #1: CodeCombat

Game Metadata

Name: CodeCombat
URL: https://codecombat.com/play
Developer: CodeCombat
Platform: Browser
Goal: To teach multiple programming languages including Python, JavaScript, CoffeeScript, Java, Lua & C++.

Learning Objectives

The developer assumes that there is already a specific language that the player plans to learn. (Thus, the choices of languages) The developer also assumes that the player already have understanding towards instructions.

The game centers around:-

1. Problem solving - To be able to move the character to the desired path
2. Programming - To program the move so that the character could move as desired
3. Critical thinking - To be able to avoid being seen by the Ogre, the player has to think of ways to move the character so that it does not cross path with the Ogre.

Game Elements

Noun: Main Character (for the player), the spikes, the gems, the Ogre / the Brak, the background, the equipments, the language, the methods, the "notepad", the buttons (to run the code / to be done / hints / reset / map / game menu / sign up), the title of the current level, the health status, the configuration buttons (volume button / mute button / volume level / full screen / zoom in / zoom out), the Map, the Clans, the Items, the Heroes, the Achievements, the language toggle, the sign up / login button, the pop-up to inform the kind of syntax we're learning, the inventory and the traps, the achievements (the XP / gems gained).

Verb: Moving the character, typing the program, choosing the equipment, unlocking certain equipments with diamonds, choosing / changing the language, choosing the level at the map, saving the current level, changing the hero, going back to the map, signing up / logging in the game, attacking the enemy, hints, being attacked / die, ability to join clans,

Gameplay:

The game starts with inquiring the player on the language we would like to learn.

Upon starting a level, the game would inform the kind of syntax we're learning on that level and player may choose the equipment needed. Once entering the level, the game would give a list of goals we'd try to complete in the level.

In the first level, the game would provide hint for players to use the methods available. In JavaScript, since the capitalization is important, if the user keys in wrong capitalization, the game would alert that the capitalization is wrong. If we're slow in writing down the program, the game would hint of what to be done.

After a few levels, the game started increasing the complexity of the code. For example, adding parameters to the function.

The Core Gameplay Loop: Solving the challenges by writing codes to move the characters.

Learning Mechanism

The gameplay users the Scaffolding technique in which the code gets a little bit more complicated at each level.

As for the hints, the game uses "Guided Attention" at two places:

1) To hint of the methods available so that the players would know how to start

2) To provide hints of what to be done at the level if the players seem to be slow

The game also uses Feedback principle to provide feedback of how the player is doing. It has checklists as to what the player should complete and it would check the checklist once the player has runs the code.

Overall Critique

For me, I feel like the game is straight to the point and players would definitely learn the syntax of the language. It is easy to understand despite the extra features / nouns that were added to the game.

However, I find the equipment are against the "Coherence" principle. As far as the free game goes, it does not seem to give an impact to the gameplay / towards the understanding of the codes. I find it confusing when I first started - what is the equipment for / how does it serve the purpose?

Comments

Popular posts from this blog

VS 2022 / .Net Core Error : Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE.

I just created a new .Net Core 3.1 project. I installed Node.JS (from Nuget Packages). I've also used the VS installer to install Node.JS. But when I run, I was still having the issue below error : Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE. I was running Visual Studio 2022. What solved it was the following: 1) I searched for node.exe and found it at the following folder: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\NodeJs 2) Opened Windows Start Menu and typed "Edit the system environment variables" 3) Click on "Environment Variables" 4) At the next screen, look for "Path" under "System Variables". Double click it / click edit. 5) Add the nodejs path from (1). 6) Restart visual studio and taraa. Solution was from one of the answers in:  https://stackoverflow.com/questions/59115525/node-j

VS Code / Flutter: Error "'flutter' is not recognized as the name of a cmdlet..."

 I was trying to run a command: flutter pub add youtube_player_flutter But it was giving me the error: "'flutter' is not recognized as the name of a cmdlet..." To fix this, we need to add it to the Environment Variables (just like what I did for node.js in the previous post!) 1) You should know where's your flutter's sdk at this point. Mine is at: C:\src\flutter\bin 2) Opened Windows Start Menu and typed "Edit the system environment variables" 3) Click on "Environment Variables" 4) At the User variables for User, click on Path. 5) Add the flutter sdk's path from (1). 6) Do the same for "System Variables". Double click on "Path" / click edit. 5) Add the flutter sdk's path from (1). 6) Restart visual studio code and then, all done! Solution found at:  https://stackoverflow.com/questions/70113055/vs-code-flutter-is-not-recognized-as-the-name-of-a-cmdlet

MapBox Flutter Turn-by-turn Navigation - Not Updated / Not Working

 I have spent countless hours/days trying to fix the turn-by-turn navigation. I thought it was just me not understanding flutter and MapBox integration. Apparently, there was an issue in their SDK for turn-by-turn navigation. It has been fixed for Android native SDK but not for Flutter's. There may be a way to fix it. But I've decided to go native now. Bye Flutter. 😭 P.S. Share with me if you were able to make their turn-by-turn navigation a success!