Low barrier to entry…
|
|
|
Low barrier to entry…
…but also…
(No not Rogue-lites, Rogue-likes!)
They may not be what you had in mind, but they tick all the boxes!
Games that are like the classic game Rogue (1980)
Bay 12 Games - Tarn Adams & Zach Adams
Douglas Cowley
Grid Sage Games - Josh Ge
Krystian Majewski
https://krystman.itch.io/porklike
Corresponding to the IBM Code Page 437 (Extended ASCII)
Dwarf Fortress Tileset Repository: https://dwarffortresswiki.org/Tileset_repository
| - Non-Player Characters | - Levels |
| - Path finding | - Dungeon generation |
| - Collectables | - Combat mechanics |
| - Health & damage | - Health potions |
| - Inventory | - Puzzles |
| - Menus | - Field of View |
…etc.
https://rogueliketutorials.com/
March 2nd to March 10th, 2024
Developers are challenged to create a complete Roguelike game in 7 days!
20th Annual 7DRL Challenge!
| From… | To… |
|---|---|
| 181 Lines of code | 1149 Lines of code |
These are the same game!
(It’s a game like ‘Hoplite’, geddit?)
| From… | To… |
|---|---|
We need…
To recieve dynamic light, we need a material that understands the lighting model.
(Note: The diffuse texture is already set on the graphic’s material.)
Signals can be piped, composed, and parallelised.
A timeline animation DSL built on Signals and
SignalFunctions.
The bump function is the whole game!
1. Wait for the player to hit an arrow key
2. Bump! Instantly update everything
3. GOTO 1
Once we have animation, we need a more controlled ‘states’ for each phase of a turn loop.
1. Wait for player input // keyboard, mouse, or touch!
2. Update the game model (player turn)
3. Animate the player actions
4. Update the game model (NPC/Enemy turn)
5. Animate the NPC/Enemy actions
6. GOTO 1
Did you notice there were no rainbows on the tilesheet? It’s a shader!
Intuition for a ‘Fragment’ shader:
Parallel map over all the screen coordinates, and choose a colour for each pixel.
type UV = (Float, Float)
val context: T = ???
val UVs: List[UV] = ??? // screen coordinates
val frag: (UV, T) => RGBA = ???
UVs.par.map(uv => frag(uv, context))(This is a lie! …but good enough for now…)
stepstep functionsmixNowhere does it say the rainbow must go in a straight line…
Handy links for inspired adventurers seeking guidance on their quest:
| Indigo | |
|---|---|
| Discord | https://discord.gg/b5CD47g |
| Indigo | https://github.com/PurpleKingdomGames/indigo |
| Starterkit | https://github.com/PurpleKingdomGames/roguelike-starterkit |
| Website | https://indigoengine.io/ |
| https://twitter.com/indigoengine | |
| Mastodon | https://mastodon.gamedev.place/@davesmith00000 |
Handy links for inspired adventurers seeking guidance on their quest:
| Roguelikes | |
|---|---|
| Discord | https://discord.com/invite/S5F2H32 |
| https://www.reddit.com/r/roguelikedev/ | |
| Official Tutorials | https://rogueliketutorials.com/ |
| Roguelike Celebration Conference | https://www.roguelike.club/ |
| 7DRL | https://7drl.com/ |