Join us on Discord!
You can help CodeWalrus stay online by donating here.

[TI-nspire CX] [WIP] Untitled Rougelike

Started by Strontium, April 28, 2015, 06:58:49 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Strontium

I was disappointed at the lack of roguelikes available for the TI Nspire. As such, I am making my own! So far, I have added primitive monsters and the ability to move the player.



TODO LIST
High priority:
Monster AI
Combat
Monster levels
Random dungeon generation
Potions, ranged weapons, melee weapons, amour, rings, etc.
Shops
Various stats (I wont implement speed since that is a pain in the arse to add)

Low priority:
Colors (for example, coloring goblins green)

For the AI, I am planning on doing something like Angband where all monsters are generated sleeping, and are woken up when a player gets near them or does something to wake them up. Then, the player will generate a "scent" that extends for ~30 tiles, with the highest values next to the player and the lowest value far-est from the player. The monster will try to move the the highest number it can access until it reaches the player.

I have never made a game before, and need ideas for things to implement, so feel free to shoot ideas at me!

Current source (too lazy to zip this up and attach it):
-- character info
playerx = 5
playery = 5
playerhp = 100

-- MONSTER CLASS THINGY
-- monster constructor
MonsterGen = {}
function MonsterGen:new(x, y, icon)
  o = {x = x, y = y, icon = icon}
  setmetatable(o, self)
  self.__index = self
  return o
end

-- move monster
function MonsterGen:move()
  -- temporary movement
  -- I will soon make this an algorythm to move towards the player
  self.x = self.x + 1
  self.y = self.y + 1
end
-- end monster class thingy

-- event handlers
function on.paint(gc)
  -- draw player stats
  gc:drawLine(260, 0, 260, 240)
  gc:drawString("HP", 265, 15)
  gc:drawString(tostring(playerhp) .. "/100", 265, 30)

  -- draw all the monsters
  for mono = 1, 2 do
    gc:drawString(monster[mono].icon, monster[mono].x * 20, monster[mono].y * 20)
  end
  -- draw the player
  gc:drawString('@', playerx * 20, playery * 20)
end

function on.charIn(char)
  -- entries with turnTaken() cause the player to take a turn
 
  -- begin movement
  if char == '7' then
    -- move upleft
    playerx = playerx - 1
    playery = playery - 1
    turnTaken()
  elseif char == '8' then
    -- move up
    playery = playery - 1
    turnTaken()
  elseif char == '9' then
    -- move upright
    playerx = playerx + 1
    playery = playery - 1
    turnTaken()
  elseif char == '6' then
    -- move right
    playerx = playerx + 1
    turnTaken()
  elseif char == '3' then
    -- move downright
    playerx = playerx + 1
    playery = playery + 1
    turnTaken()
  elseif char == '2' then
    -- move down
    playery = playery + 1
    turnTaken()
  elseif char == '1' then
    -- move downleft
    playerx = playerx - 1
    playery = playery + 1
    turnTaken()
  elseif char == '4' then
    -- move left
    playerx = playerx - 1
    turnTaken()
  end
  -- end movement
  -- begin activities
  if char == '5' then
    -- wait
    turnTaken()
  end
  -- end activities
end

-- perform various processes after player turn
function turnTaken()
  -- perform monster-ly processes
  for mono = 1, 2 do
    monster[mono]:move()
  end
  platform.window:invalidate()
end

monster = {}
monster[1] = MonsterGen:new(1, 1, 'k')
monster[2] = MonsterGen:new(3, 3, 'g')
  • Calculators owned: TI Nspire CX, HP Prime
  • Consoles, mobile devices and vintage computers owned: NES

Unicorn

Sounds cool! I'm not much of a RPG/Rouglike maker, so I don't have very many suggestions. BUT, maybe bleeding and bandages if you can implment that?

Anyways, this seems like a big project, I hope it gets finished!
  • Calculators owned: I own all of them: PICKACHUP TI 84+ CSE TI 83+ SE TI something something ??? ??? ??? ??? ???
  • Consoles, mobile devices and vintage computers owned: PICKACHUP ??? ??? ??? ??? ???



??? ??? ??? ??? ???

Dream of Omnimaga

A TI-Nspire rogue game would be nice. Do you plan to change the characters so that they look more old school? (eg Courrier New or Fyxedis font) You should also maybe use a black background.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

LD Studios

Looks pretty nice so far, I've started and abandoned a couple of roguelike projects in the past. If you want to use pixel art, I made a pretty good dungeon/roguelike set for one of my abandoned projects, feel free to use it:


Of course, there's nothing wrong with bw ASCII roguelikes, and if you want to make your own art, or find some somewhere else, that's cool too.

Good luck with this project!



Strontium

Quote from: DJ Omnimaga on April 28, 2015, 08:33:09 PM
A TI-Nspire rogue game would be nice. Do you plan to change the characters so that they look more old school? (eg Courrier New or Fyxedis font) You should also maybe use a black background.

Adding your own fonts to the TI-Nspire is a pain. So no.

And using a black background is easy, I'll make it so you can choose white on black or black on white.

Quote from: LD Studios on April 28, 2015, 08:35:43 PM
Looks pretty nice so far, I've started and abandoned a couple of roguelike projects in the past. If you want to use pixel art, I made a pretty good dungeon/roguelike set for one of my abandoned projects, feel free to use it:


Of course, there's nothing wrong with bw ASCII roguelikes, and if you want to make your own art, or find some somewhere else, that's cool too.

Good luck with this project!

I am just going to do ASCII, since it'll be easier for me to code.
  • Calculators owned: TI Nspire CX, HP Prime
  • Consoles, mobile devices and vintage computers owned: NES

Dream of Omnimaga

Aah but by custom fonts I meant via sprites. For example if sub-string is equal to A then you draw a sprite that shows a custom A, kinda like how some Axe programmers do it. I am fine with ASCII for a Roguelike, though, although maybe with some colors and the background being black like in the original games.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Strontium

Well, development postponed until the 4x3 contest is over. I want to focus all my time on it so I can make my entry the best it can be.
  • Calculators owned: TI Nspire CX, HP Prime
  • Consoles, mobile devices and vintage computers owned: NES

Dream of Omnimaga

Ok good luck and don't forget to both announce your entry and once you are done, this project :)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal