Jump to content


nitrogenfingers's Content

There have been 11 items by nitrogenfingers (Search limited from 30-March 23)


By content type

See this member's

Sort by                Order  

#270595 Anyone up for testing a game?

Posted by nitrogenfingers on 26 September 2017 - 06:12 AM in General

Hey everyone, I'm working on a reasonably large game at the moment. I've put together some algorithms for saving and loading games, but there are a lot of possibilities for things to go wrong. I was wondering if anyone was keen to help with testing.

If so leave a message here or a PM, I'll forward you the code and some advice on what I'd like tested. Cheers in advance.



#270451 Thoughts on Drag & Drop Coding

Posted by nitrogenfingers on 20 September 2017 - 10:15 AM in General

My 2 cents on this (I used to use visual language as a teacher)

Visual programming languages are useful for teaching because both syntax and compsci principles are important to learn when programming, and the use of a syntax-minimal language allows them to be learned independently. The algorithms behind principles like conditionals, looping and recursion are largely equivalent regardless of language, so you can create and observe these structures without worrying about syntactic pitfalls like missing punctuation or misspellings. Of course theoretically a visual programming language can probably implement any finite set of functionality, but the programs I've used keep the scope of their respective languages very small (or choose a simple platform) for the sake of simplicity.

So functionally I haven't seen a visual language that could be used for anything complex, because to do so would be missing the point.

Regarding the impact of hiding low-level functionality on programmer understanding, this was actually the topic of my graduate thesis :D From my research, yes this is a danger. A good example of this is BlueJ, a Java IDE that uses UML to hide the static elements of the language. It's not a visual language per se but it has visual components in place of code. At my university we observed significant issues transitioning from BlueJ to Eclipse because it fundamentally altered their perception of how Java worked. The author of the IDE discussed this among other issues in a 2008 paper.

It's a super-specific case but my takeaway is as teaching tools they're useful to a point, and students should not come to rely on them in the long run, as this may hamper their ability to learn other paradigms in the future.



#270297 Micropaint: Experimental painting program for tiny pixels

Posted by nitrogenfingers on 13 September 2017 - 07:35 AM in Programs

Excellent idea. If I make an update to micropaint I'll include that feature. I've needed something similar myself when doing that sort of work.


I haven't set a license for any of the software I've made, but if you keep the attribution comments at the top of the file then it's probably fine.



#270220 [Beta] Dodj - Dodgeball in CC!

Posted by nitrogenfingers on 11 September 2017 - 07:07 AM in Games

View PostDave-ee Jones, on 11 September 2017 - 05:55 AM, said:

Because I made the player's teams changeable it means that players can change their team via the colour, which means that if I have a set scoreboard and people change the colours they aren't going to be scored..Can't think of a way to implement this without having each player have their own score.

If you can assume players can't change their team once a game starts, then you can loop through each player in the game, get a unique list of colours and use that for scorekeeping.

local players = { [1] = {team = colours.red}, [2] = {team = colours.blue}, [3] = {team = colours.red}, [4] = {team = colours.green}}
local team_scores = { }

local function createTeams()
  for _,player_entry in pairs(players) do
    team_scores[player_entry.team] = { score = 0 }
  end
end

local function displayScores()
  for team_color, team_score_value in pairs(team_scores) do
    term.setCursorPos([...])
    term.setTextColour(team_color)
    term.write(team_score)
  end
end

Incidentally I haven't tested any of these code snippets :P but hopefully you get the gist.



#270217 [Beta] Dodj - Dodgeball in CC!

Posted by nitrogenfingers on 11 September 2017 - 05:38 AM in Games

This is looking better, although I still can't catch a ball to save my life.

Bug: Once one team scores a point and the field resets, players are no longer able to pick up dodgeballs

I think my comment about the size of the field is still my big concern with this one, although having more dodgeballs on screen definitely makes it more frantic. A game mode where a moving dodgeball is dangerous to both sides would even further raise the stakes. You should have a display somewhere in the frame that shows the current score as well.

One last suggestion, particularly seeing as this game appears to be about fast movement, you might want to instead of using key events to move your characters, you could keep the state of the button as 'up' or 'down'- setting it to either when a key_up or key_down occurs. Then just have a running timer in the background and evaluate each movement when it ticks over. If you do that, you avoid that delay after the first key event fires and you have more control over how fast the characters move.

local player = { x = 10, y = 10 }
local keyboard_states = { [keys.up] = false, [keys.down] = false, [keys.left] = false, [keys.right] = false }
local key_timer_length = 10
local key_timer = os.startTimer(key_timer_length)
while true do
  local id, p1 = os.pullEvent()
  if id == "key_down" then keyboard_states[p1] = true
  elseif id == "key_up" then keyboard_states[p1] = false
  elseif id == "timer" and p1 == key_timer then
    if p1 == keys.up then player.y = player.y -1
    --etc etc
  end
end



#270140 little rpg engine

Posted by nitrogenfingers on 09 September 2017 - 01:37 AM in Games

I had a go running it but there wasn't any content. It would be cool to have that added, so we can see what your API can do



#270098 [Beta] Dodj - Dodgeball in CC!

Posted by nitrogenfingers on 07 September 2017 - 04:15 AM in Games

I had a quick play with this. There's definitely potential for something really fun here, but a few things I'd suggest:

- The ability to change your facing without moving. A second button could do this without overloading the scheme I think.
- A smaller playfield. Right now it's just too easy to miss unless you're quite close
- More dodgeballs on the field. I'm not sure what a good ratio would be but I think it should be reasonably difficult to move around when all are in motion.
- Tweak catching. I found it really challenging to catch the ball- either the game is moving too fast or the window to catch is just too small. Some visual indication of when/where that window is would be really good as well.

As a later deliverable one idea that came to me is to have playfields with obstacles that reflect the dodgeballs in different directions- you could use slashes or teletext characters to bounce the balls 90 degrees. Particularly if these obstacles could be moved, that could lead to some interesting gameplay.
Another layer might be having multiple players- either you move them all at once with the same directions or cycle between them. That could really raise the stakes of the game, make it like spinning plates.


Also I noticed some flicker when I played it. It looks like you're redrawing the game each cycle- you can probably trim this down as there aren't many visual elements on the screen- like only draw a player when an appropriate key event is fired etc.



#269938 Ramuthra's Plane

Posted by nitrogenfingers on 03 September 2017 - 02:13 AM in Games

I thought this was really cool. It actually inspired me a bit to go back and look at some of my old stuff.

Hope you can release more content, it looks like there's a cool game here :)



#269937 CCJam 2017 is here!

Posted by nitrogenfingers on 03 September 2017 - 02:12 AM in General

I haven't heard anything about this since last week so I'm just going to put my scores up. I haven't done CrazedProgrammers yet as I've been travelling a lot and am about to do so again so will have to defer to the other judges there (apologies).

Scores are below. I thought they were all really impressive, this was a cool jam so nice work everyone :)

Ratchet2497
Spoiler

Wilma456
Spoiler

Saldor010
Spoiler

supernicejohn
Spoiler



#269167 CCJam 2017 is here!

Posted by nitrogenfingers on 22 August 2017 - 07:57 AM in General

 CrazedProgrammer, on 19 August 2017 - 10:39 PM, said:


I wasn't able to get this one to work- package on line 1000 was nil, so I'm guessing I'm missing a dependency. Could you provide a bit more instruction?



#268924 CCJam 2017 is here!

Posted by nitrogenfingers on 10 August 2017 - 07:06 AM in General

Looking forward to seeing the submissions. Best of luck everyone :)