Jump to content

Infinite difficulty increase?

Captain Spazer

Recommended Posts

Sorry for asking so many questions, but I got yet another one: How would I go about if I wanted to scale the difficulty an infinite amount, or rather, up the speed too it's absolutely fastest?


I usualy do difficulty by something like "If BOSS is hit, then a=a+1, and a contains a set speed of a sprite or something. But that is really not efficient.


What I want to know is, can it be done so that the playfield scrolls faster and faster?


My current logics for the pfscroll is this but it dosn't speed up.

   dim _Scroll_Control = w

 rem Master Computer's shield logic
   if _Scroll_Control = 28 then pfscroll right : _Scroll_Control = 0
 gosub SPEED_UP

   _Scroll_Control = _Scroll_Control + 1
Edited by Captain Spazer
Link to comment
Share on other sites

Whenever a question is asked, there is a chance that it will help improve the batari Basic page. Sometimes more text is added to help explain things better or new example programs are made.


"if _Scroll_Control = 28" is stuck at 28. Seems like it would be better to have a variable in place of the 28 that decreases over time. For example, if you replaced 28 with _Scroll_Difficulty and used a counter called something like _Scroll_Diff_Counter, you'd probably get what you are looking for. Here is a very rough example:

   dim _Scroll_Control = w
   dim _Scroll_Difficulty = x
   dim _Scroll_Diff_Counter = y

   _Scroll_Difficulty = 28


   if _Scroll_Control => _Scroll_Difficulty then pfscroll right : _Scroll_Control = 0

   _Scroll_Control = _Scroll_Control + 1

   _Scroll_Diff_Counter = _Scroll_Diff_Counter + 1

   if _Scroll_Diff_Counter > 200 then _Scroll_Diff_Counter = 0 : if _Scroll_Difficulty > 2 then _Scroll_Difficulty = _Scroll_Difficulty - 1 

   goto __Main_Loop

Remember, that's just a simple, rough example.


If you don't want _Scroll_Difficulty to go as low as 1, change the 2 in "if _Scroll_Difficulty > 2 then _Scroll_Difficulty = _Scroll_Difficulty - 1" to a higher number.

  • Like 1
Link to comment
Share on other sites

Usually you want to find several factors that you can make more challenging and add them over time.


In my latest game "Game Panic 2" I have a timer that appears on screen as miles. The longer the player plays the more difficulty ramps up. I guess my main point is that just increasing scroll speed may not be a complete answer.


Here is the difficulty ramp up for my game:


Reaching mile 16 will double the bugs falling.

Reaching mile 32 will cause lighting to strike.

Reaching mile 48 makes bad clouds warp and dive.

Reaching mile 64 causes bugs and lighting to move faster.

Reaching mile 80 increases enemy speed again.

  • Like 2
Link to comment
Share on other sites

From what I learned from RT and me playing around with speed. This may help.


dim _Scroll_Control = a.b
dim _Scroll_Difficulty = c.d
dim _Scroll_Diff_Counter = e.f


it uses fixed point math. Since I like DPC+ games better you have to include "include fixed_point_math.asm"


I use the below as a template.


set kernel DPC+
set tv ntsc
set smartbranching on
set optimization inlinerand
include fixed_point_math.asm
set kernel_options collision(playfield,player1)


The only drawback I see is that you use up your variables, but with out them going from 1 to 2 maybe too fast for gameplay. If you use 1.2 or something it should be faster, but more manageable to play.


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...