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.
(https://i.imgur.com/C0UllOe.jpg)
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')
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!
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.
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:
(http://codewalr.us/index.php?action=dlattach;topic=276.0;attach=206;image)
(https://img.ourl.ca/1-14.png)
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!
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:
(http://codewalr.us/index.php?action=dlattach;topic=276.0;attach=206;image)
(https://img.ourl.ca/1-14.png)
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.
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.
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.
Ok good luck and don't forget to both announce your entry and once you are done, this project :)