PreAlpha DevLog based on Tutorial Series
The game is based on FriendlyCosmonaut (Youtube-Channel: https://www.youtube.com/channel/UCKCKHxkH8zqV9ltWZw0JFig) which helped a lot to get into game maker development and coding.
This post contains the whole journey and the early steps with all links to the dependend videotutorial and my made major steps.
TUTORIAL PART 1 - IDE Environment explanations for game maker
TUTORIAL PART 2 - Basic Movement
-roomsize fixed
-easy keyboard movement in separate script and used for pod
-screenwrap in extra script and included for pod and astroid
TUTORIAL PART 3
-collision in collision event obj_pod1
-bullet1 sprite created and in script move_pod1 the shoot-event defined which creates bullet instances
-collision Bullet1 with Astroid in obj_bullet1
-script hit_astroid_splitting1 checks and splitts astroids
-spr/obj/script for Debris, if astroid or pod is destroyed
TUTORIAL PART 4
-obj_pod1 lives reduced at collision event
-obj_bullet1 score highered with collision / score for astroid depends on size (score_astroid1 with global variables in obj_game1)
-roomlogic: startroom u. obj_game1-logic with startscreen, winscreen, gameoverscreen and depending switches
TUTORIAL PART 5
-new spawn of astroids in obj_game1/roomstart with alarm[0]: new astroid every second out of screen (it will never end!!!!! ;-])
-soundeffects: obj_game1/RoomStart -> background music
-soundeffects: obj_game1/Step -> win u. gameover sounds
-soundeffects: obj_pod1 move_pod1 -> shooter-sound
-soundeffects: obj_pod1/colide@astroid -> hurt-sound
-soundeffects: obj_bullet1/Colide@Astroid -> explode-sound
-ship-respawn with obj_game1/alarm[1] - Restart room and in obj_ship/Colide@Astroid - with(obj_game) - alarm[1] = room_speed;
-soundeffects: obj_game1/roomstart -> backgroundbeat start only if not allready running
TUTORIAL PART 6 Cameras 1/3
-roomsize x4
-background in rm_game (spacerats "cartoony")
-object centering obj_pod1 100/700
-score as script
TUTORIAL PART 7 Cameras 2/3
-camerapos/viewports in obj_camera1 / applicationsurface set / window center
-center to Cam in obj_pod1 / Wrapping updated
-scores as GUI top left
-div. space-backgrounds tested -> spr_background2
TUTORIAL PART 8 Cameras 3/3
-script spawn_off_camera1 in gamestart - astroids spawn again outside cam with additional padding
-Script spawn_off_camera1 as alarm[0] aktualisiert - consecusive astroid spawn
-old spawn_astroid-script disabled
-instances rm_game rank changed to camera (spawn of astroids in screen, if screen not written)
-obj_game1 simplified and all draw-events separately in scripts/Draw
-bei obj_camera1 makes problems but however.. it functions so I must not know, why! ;-)
TUTORIAL PART 9 Parallax Backgrounds
-4 new layer in rm_game parallax_0-2 and gradient with stars tiled
-gradient alpha-Kanal adjusted
-in obj_camera1 scrollfactor with layer_x/y per layer defined
-TEST draw_score1 auch Pod-dir u. Pod-angle, but not working ;-)
-Bullet-Speed = Bulletspeed + Podspeed!
-new sprite for Pod (greenish)
TUTORIAL PART 10 Enemy Factions 1/3 Theorie
-EnemyBasics: created random Dir/Set Speed; detection radius behaviour; conclusions bullet collisions
-parent object for all enemy ships
TUTORIAL PART 11 Enemy Factions 2/3 Coding Factions / Bullet / Take Damage-UserEvent
-objects: ENEMY-dir with 3 created enemy-obj.
-obj_parent_enemy u. 3 enemy_obj as child / obj_faction_enemy and obj_parent_enemy as child (Enemy-Obj. are subchilds or faction-Obj. is grandfather)
-objects: ALLY-dir with pod u. obj_faction_ally with pod as child
-objects: NEUTRAL-dir with Astroids u. obj_faction_neutral with astroid as child
-object obj_faction as GrandGrandfather: ENEMY/ALLY/NEUTRAL-Faction-Objects as childs here
-object obj_faction faction = factions.neutral; and then in all Child-Faction-Obj. umdefinieren auf Enemy/Ally
-event_inherited(); IF parent-create-inheritance, allow own create events!
-bullet-collision mit Astroid rewired to obj_faction
-USER EVENT @ obj_astroid take damage - code from bullet-collision with Astroid here
-bullet-collision astroid with obj_faction: bullet destroy; check if faction-collision; start USER EVENT take damage
-bullet destroy outside room optimized (check if in room, else destroy)
-bullet-collision ship with obj_faction: check if faction-collision; start USER EVENT take damage; neues Destroy-Event with last collision code
-bullet-creation-Script with 3 arguments (dir, spd, faction) from move_pod in separte Script to use for every ship
-faction-argument in bullet creation do not let ships shoot their own faction
-Bullet-color per faction but commented out because allready enough colors ^^
TUTORIAL PART 12 Enemy Factions 3/3
-obj_parent_enemy basics for every Enemy / destroy-Event sound, debris, points per ship-obj_parent_enemy outside room: wrap; take damage HP-reduce u. destroy
-obj_game: spawn_off_camera: spawns for actual 3 enemy-types
-Raider behaviour: follow pod, shoot
-Hunter behaviour: follow pod, shoot, speedup in range
-Brute behaviour: follow pod, speedup, sprite per health, following
TUTORIAL PART 13 PowerUps 1/3
-ship_pod-canon etc. as sprite with 6 frames in same order as powerup icons
-enum for powerups created
-obj_ship: gun / invincible variable / 2 alarms for Reset guns and reset invincible
-obj_ship: collision only for playership with Switch, which Powerup collected
-obj_ship: draw gun / draw invincable according status u. fadeout alpha of invincable
TUTORIAL PART 14 PowerUps 2/3
-initiate_bullet1 some standard functions for all bullet creations here integrated
-two-Bullets @create_bullet1: 2 shoots (adjustion with lengthdir)
-three-Bullets @create_bullet1: 3 shoots (adjustion with lengthdir) as first switch, which additionally uses two-bullets
-four-Bullets @create_bullet1: 4 shoots - star bullet (adjustion with lengthdir)
TUTORIAL PART 15 PowerUps 3/3
-laser-bullets - obj_laser speed test and deactivate for laser (laser do not move like bullet)
-laser-bullets - obj_bullet1 - create laser for laser switch element
-detroy.Astroids: randomly let spawn powerup / destroy.obj_parent_enemy: randomly let spawn powerup
-test-powerup cleared, shipspawn reactivated (score für enemyships global)
-brute immun to laser: in obj_faction integrated, all obj_faction_X event_inherited defined; Brute immune=true
-obj_laser = check if immune and do not destroy in case
TUTORIAL PART 16 PowerUps 1/2
-shakervalue in obj_parent_enemy for all ships
-shakervalue in score_astroid1 depends on size of astroid
-obj_astroid1 organized new between take damage and destroy
TUTORIAL PART 17 PowerUps 2/2
-particle-System container created
-obj_particles: exhaust created and in move_pod1 used with alarm
-obj_particles: enemy exhaust as Script for enemys (exceptions depending on enemy for position of exhaust)
-obj_particles: cleanup particlesystems
-obj_particles: debris for ship and astroid created and defined
-obj_particles: cleanup debris
-particle debris ship integrated in destroy obj_pod1 / ob_parent_enemy
-debris for astroids in script Astroid_Score integated
-> my final Alpha v1-0 Version after 17-part-tutorial (i use a pre v3 in my names, which indicates, that this is the 3. try ;-])
Files
Get Tiny Spaces "Space Rocks"
Tiny Spaces "Space Rocks"
"Asteroid"-like top-down shooter with asteroids and a selection of differently behavouring enemies
Status | Prototype |
Author | melodyver |
Genre | Shooter |
Tags | Asteroids, GameMaker, Space, space-shooter, tinyspacegame |
Languages | English |
More posts
- DevLog from Alpha 1.0 to 1.5.5.4Jan 09, 2021
- Space Rocks Alpha v1-5-5-4Nov 27, 2020
Leave a comment
Log in with itch.io to leave a comment.