Here is a new core for making 2 players co-op games: simple platformer, maze, adventure games.
It's based on the Basic NoScroll one, but because a LOT of modifications have been made, it couldn't just be a patch of the current modules/core.
For NESmaker 4.1.5
This new core comes with two modules: the "Top Down Adventure" and the "Simple Platformer" module. They are both contains almost all the fixes and some custom scripts I shared on the forum (projectiles are working, melee sprite based or object melee... all can be enable/disable with user constants and scripts assignments. Monster drops, monster death animations, ... is fixed and can be enabled/disable with user constants).
More specific tutorials might come... if needed.
How to install the "Basic NoScroll Two Players" core
1/ Download the ZipScript from here: https://drive.google.com/open?id=1siDEnbf43rHAi8SvLq-Huz-jezr0KChJ
(don't unzip it / keep it zipped)
2/ Open NESmaker, go to the "Project" menu and select "Run Project Scrip".
Navigate until your downloads folder and select the "Basic_NoScroll_TwoPlayers.zip" file you have just downloaded.
Wait some (long) seconds, a message should be displayed when the installation is finished:
Voilà, the new "Basic NoScroll Two Players" is installed.
How to install the new 2 players MODULES
1/ Download the 2 Players modules (zipped) from here: https://drive.google.com/open?id=1_s8HiB8Q_nq46UF2r2PBCalTI5WNZgqg
2/ Unzip the "2players_modules.zip" file. It should contain two files: "2Players_SimplePlatformer.MOD" and "2Players_TopDownAdventure.MOD"
3/ Copy the "2Players_SimplePlatformer.MOD" and "2Players_TopDownAdventure.MOD" in your NESmaker\Modules\ folder.
Voilà, the new 2 Players modules are installed.
If you make a new project in NESMaker, you will now have two new 2 players modules (using the new Two Players core).
TUTORIALS
The quick tutorial for a 2 PLAYERS ADVENTURE / MAZE GAME is here: http://nesmakers.com/viewtopic.php?f=35&t=2506
The quick tutorial for a 2 PLAYERS SIMPLE PLATFORMER GAME is here: http://nesmakers.com/viewtopic.php?f=35&t=2507
DEMOS
Here's some demo projects for those who want to start playing with a already configured project:
Download the zip file here : https://drive.google.com/open?id=1gT9UlNgI5MtVCNWmS96oIcV91C6d21K4
It contains "Adventure" and "SimplePlatformer" Projects + GraphicAssets.
Unzip the contain in your NESMaker folder. And you can then, open the demo project in NESmaker.
WARNING: if you have already projects with the same names, they will be replaced !!!
Small important notes
The Player 2 object:
By default in the 2 players modules, the second player is the last object from the Game Objects list.
If you want to use another game object, modify the "OBJ_PLAYER_2" constant in the "Project Settings > User Constants".
The Input Scripts:
One other big difference with the basic modules is now you have to set the "Target" when assigning the scripts in the Input Editor:
So each script will be have to be assigned twice: to the "Player 1" and to the "Player 2".
(But maybe you want assign some script only to the Player 1... or only to the player 2? For example, the player 1 can use sword and the player 2 projectiles)
Start Screen Selection:
- The selection cursor is enabled on Start Screen.
Check the "Project Settings > User Constants":
STARTSCREEN_CURSOR_TILE: define the tile (from the gameobjecttiles.bmp) is used as cursor/selector (if you set "0" the selector will be disabled, so not been displayed).
SELECTION_POS_X and SELECTION_POS_Y are the pixel coords of the first item of the selection menu (it means the "1 PLAYER" item)
There are only 2 items (1 player or 2 players mode). By default the cursor is set to the value of the variable "player2Mode" (0 means 1 player only and 1 means two players mode)
- To move the cursor, assign the "SelectionStartScreen.asm" script to the input button you want (in the demo I used "press" "select"). This script modify the value of the "player2Mode" variable (the screen is updated and the cursor changed its position).
- To validate and start the game, assign the "StartGame.asm" script.
HUD variables for Health:
- In "HUD & Boxes > User Variables", there are now two variables: "myHealth1" and "myHealth2" for the Player 1 and the Player 2. Those variables NEED to have a value!
(If "0", the player will not spawn in most cases)
The Lives
In "Project Settings > User Variables", you will find the "myLives" variable to set your game lives value (when both players are dead, you lose a life).
Object Melee / Sprite base Weapon
By default the modules use sprite based weapon (it uses less memory) with the b_create_weapon_sprite.asm on B pressed.
You can use the object, just disable the sprite code in "Project Settings > User Constants" set the SPRITE_WEAPON constants to "0" and use the b_create_melee_object.asm for inputs..
The Monster Drops
Check the "Project Settings > User Constants", you will find the "OBJ_MONSTER_DROP_ITEM1", "OBJ_MONSTER_DROP_ITEM2" and "OBJ_MONSTER_DROP_ITEM3" constant, you can set the objects you want the monsters drop when they died (it's random between those 3 possibilities + no object). If you set the constants to "0" the monster will not drop any Item.
Some issues with screen transitions / edge collisions
In some screen, you can have issues with wrong collision detections when transiting from one screen to another (or warps). The result is glitchy, your player is stuck or blocked or warped to a wrong screen (not the screen it should be).
If you have those issue, make to place null walkable tiles (collision data) on the opposite side of your screen exit, like in this image:
(you could also use normal tiles and just change the tile type, via a right click>Modify attribute>0 Null walkable).
MOST IMPORTANT NOTE: this core and the modules are not official, I made this at first, for my personal use, for my game... it sure have issues, bugs, ... sorry in advance for that. Feel free to modify/fix/share...
Updates:
2019-03-25: fixed the collisions with a NPC (for the "player 1 make the collision, the player 2 press the b activate text button" thing)
Known bugs:
- Enemies fall through ladders when pressing down: a fix is available here: http://nesmakers.com/viewtopic.php?p=25626#p25626
It's based on the Basic NoScroll one, but because a LOT of modifications have been made, it couldn't just be a patch of the current modules/core.
For NESmaker 4.1.5
This new core comes with two modules: the "Top Down Adventure" and the "Simple Platformer" module. They are both contains almost all the fixes and some custom scripts I shared on the forum (projectiles are working, melee sprite based or object melee... all can be enable/disable with user constants and scripts assignments. Monster drops, monster death animations, ... is fixed and can be enabled/disable with user constants).
More specific tutorials might come... if needed.
How to install the "Basic NoScroll Two Players" core
1/ Download the ZipScript from here: https://drive.google.com/open?id=1siDEnbf43rHAi8SvLq-Huz-jezr0KChJ
(don't unzip it / keep it zipped)
2/ Open NESmaker, go to the "Project" menu and select "Run Project Scrip".
Navigate until your downloads folder and select the "Basic_NoScroll_TwoPlayers.zip" file you have just downloaded.
Wait some (long) seconds, a message should be displayed when the installation is finished:
Voilà, the new "Basic NoScroll Two Players" is installed.
How to install the new 2 players MODULES
1/ Download the 2 Players modules (zipped) from here: https://drive.google.com/open?id=1_s8HiB8Q_nq46UF2r2PBCalTI5WNZgqg
2/ Unzip the "2players_modules.zip" file. It should contain two files: "2Players_SimplePlatformer.MOD" and "2Players_TopDownAdventure.MOD"
3/ Copy the "2Players_SimplePlatformer.MOD" and "2Players_TopDownAdventure.MOD" in your NESmaker\Modules\ folder.
Voilà, the new 2 Players modules are installed.
If you make a new project in NESMaker, you will now have two new 2 players modules (using the new Two Players core).
TUTORIALS
The quick tutorial for a 2 PLAYERS ADVENTURE / MAZE GAME is here: http://nesmakers.com/viewtopic.php?f=35&t=2506
The quick tutorial for a 2 PLAYERS SIMPLE PLATFORMER GAME is here: http://nesmakers.com/viewtopic.php?f=35&t=2507
DEMOS
Here's some demo projects for those who want to start playing with a already configured project:
Download the zip file here : https://drive.google.com/open?id=1gT9UlNgI5MtVCNWmS96oIcV91C6d21K4
It contains "Adventure" and "SimplePlatformer" Projects + GraphicAssets.
Unzip the contain in your NESMaker folder. And you can then, open the demo project in NESmaker.
WARNING: if you have already projects with the same names, they will be replaced !!!
Small important notes
The Player 2 object:
By default in the 2 players modules, the second player is the last object from the Game Objects list.
If you want to use another game object, modify the "OBJ_PLAYER_2" constant in the "Project Settings > User Constants".
The Input Scripts:
One other big difference with the basic modules is now you have to set the "Target" when assigning the scripts in the Input Editor:
So each script will be have to be assigned twice: to the "Player 1" and to the "Player 2".
(But maybe you want assign some script only to the Player 1... or only to the player 2? For example, the player 1 can use sword and the player 2 projectiles)
Start Screen Selection:
- The selection cursor is enabled on Start Screen.
Check the "Project Settings > User Constants":
STARTSCREEN_CURSOR_TILE: define the tile (from the gameobjecttiles.bmp) is used as cursor/selector (if you set "0" the selector will be disabled, so not been displayed).
SELECTION_POS_X and SELECTION_POS_Y are the pixel coords of the first item of the selection menu (it means the "1 PLAYER" item)
There are only 2 items (1 player or 2 players mode). By default the cursor is set to the value of the variable "player2Mode" (0 means 1 player only and 1 means two players mode)
- To move the cursor, assign the "SelectionStartScreen.asm" script to the input button you want (in the demo I used "press" "select"). This script modify the value of the "player2Mode" variable (the screen is updated and the cursor changed its position).
- To validate and start the game, assign the "StartGame.asm" script.
HUD variables for Health:
- In "HUD & Boxes > User Variables", there are now two variables: "myHealth1" and "myHealth2" for the Player 1 and the Player 2. Those variables NEED to have a value!
(If "0", the player will not spawn in most cases)
The Lives
In "Project Settings > User Variables", you will find the "myLives" variable to set your game lives value (when both players are dead, you lose a life).
Object Melee / Sprite base Weapon
By default the modules use sprite based weapon (it uses less memory) with the b_create_weapon_sprite.asm on B pressed.
You can use the object, just disable the sprite code in "Project Settings > User Constants" set the SPRITE_WEAPON constants to "0" and use the b_create_melee_object.asm for inputs..
The Monster Drops
Check the "Project Settings > User Constants", you will find the "OBJ_MONSTER_DROP_ITEM1", "OBJ_MONSTER_DROP_ITEM2" and "OBJ_MONSTER_DROP_ITEM3" constant, you can set the objects you want the monsters drop when they died (it's random between those 3 possibilities + no object). If you set the constants to "0" the monster will not drop any Item.
Some issues with screen transitions / edge collisions
In some screen, you can have issues with wrong collision detections when transiting from one screen to another (or warps). The result is glitchy, your player is stuck or blocked or warped to a wrong screen (not the screen it should be).
If you have those issue, make to place null walkable tiles (collision data) on the opposite side of your screen exit, like in this image:
(you could also use normal tiles and just change the tile type, via a right click>Modify attribute>0 Null walkable).
MOST IMPORTANT NOTE: this core and the modules are not official, I made this at first, for my personal use, for my game... it sure have issues, bugs, ... sorry in advance for that. Feel free to modify/fix/share...
Updates:
2019-03-25: fixed the collisions with a NPC (for the "player 1 make the collision, the player 2 press the b activate text button" thing)
Known bugs:
- Enemies fall through ladders when pressing down: a fix is available here: http://nesmakers.com/viewtopic.php?p=25626#p25626