Recent Posts
51
				Engine Development / Tileset won't update...
Last post by Defiant -
					So I'm trying to make the change from the old sphere to miniSphere, but I'm old, I hate change and somethings frustrate me to the ends of the earth. 
Anyways, I think it's a bug, I'm using miniSphere 5.3, and working off a blank tileset and editing it as I go. I frequently load up the game to see how things look and try to see proportions of the surroundings. The problem is that in the editor it updated to the newest iteration, but when i test the game it defaults to an old version. I've tried closing the map, and the project itself.

The top part is cropped from the editor, while the part below is being ran from the engine.
Is there something I'm missing?
			Anyways, I think it's a bug, I'm using miniSphere 5.3, and working off a blank tileset and editing it as I go. I frequently load up the game to see how things look and try to see proportions of the surroundings. The problem is that in the editor it updated to the newest iteration, but when i test the game it defaults to an old version. I've tried closing the map, and the project itself.

The top part is cropped from the editor, while the part below is being ran from the engine.
Is there something I'm missing?
52
				Engine Development / Re: Oozaru: Sphere for the Web
Last post by DaVince -
					Hey! I haven't been around for a while but this is looking mighty impressive so far, good job!  
 
				
			 
 
				53
				Off-Topic Discussions / Re: Elona sourcecode released. written in 'Hot Soup Processor.
Last post by Fat Cerberus -
					This sounds pretty much like the first few text-based games I ever wrote in QBasic.  Variables?  Functions?  What are they?  It was pretty much just a long string of IF..THEN and GOTO for each relevant input 
Of course mine weren't roguelikes. To code a whole roguelike like that... that's impressive.
			
Of course mine weren't roguelikes. To code a whole roguelike like that... that's impressive.
54
				Off-Topic Discussions / Elona sourcecode released. written in 'Hot Soup Processor.
Last post by FBnil -
					twitter.com/The_Doddler/status/1137483351248388096?s=19
twitter.com/The_Doddler/status/1137495814908010496?s=19
Screenshots of the game can be found here:
http://ylvania.org/en/elona
I loved the tile draw code: https://puu.sh/DDswu/2bcf03f2eb.txt
So unlike Sphere. My respects to even get it to work.
			twitter.com/The_Doddler/status/1137495814908010496?s=19
Quote
I saw that the source code for Elona, a fun japanese roguelike was available online and decided to take a look. It turns out it is a single, 14mb text file with 444000 lines of code, completely devoid of comments, written in 'Hot Soup Processor', a japanese basic like language.
Quote
The code that determines what monsters can spawn is 30000 lines of this (7% of the total game code), which checks for every monster, where if it fails it goto's the next monster, for all 1000 monsters in the game.
Screenshots of the game can be found here:
http://ylvania.org/en/elona
I loved the tile draw code: https://puu.sh/DDswu/2bcf03f2eb.txt
So unlike Sphere. My respects to even get it to work.
55
				Engine Development / Re: Oozaru: Sphere for the Web
Last post by Fat Cerberus -
					The first proof of concept of Oozaru is up (running the Spectacles battle engine), check it out:
Consider this Alpha 1. I won't call it a beta, since it's not quite feature-complete yet; sizeable portions of the Sphere v2 API are completely missing and/or inoperable. Like, the Joystick class exists, but all methods are no-ops. And almost the entire FS API is missing... that kind of thing.
			Consider this Alpha 1. I won't call it a beta, since it's not quite feature-complete yet; sizeable portions of the Sphere v2 API are completely missing and/or inoperable. Like, the Joystick class exists, but all methods are no-ops. And almost the entire FS API is missing... that kind of thing.
56
				Programming / Re: So I wrote a monad tutorial...
Last post by Radnen -
					@FatCerberus: I think you just nailed it with that post, bud.  That's indeed the simplest explanation yet. I was looking for a simple overview, like an "all-together", and what you just wrote, is it.
 That's indeed the simplest explanation yet. I was looking for a simple overview, like an "all-together", and what you just wrote, is it.
				
			 That's indeed the simplest explanation yet. I was looking for a simple overview, like an "all-together", and what you just wrote, is it.
 That's indeed the simplest explanation yet. I was looking for a simple overview, like an "all-together", and what you just wrote, is it.
				57
				Programming / Re: So I wrote a monad tutorial...
Last post by FBnil -
					Thanks for the tutorial. I reciprocate by giving you a link to Uncle Bob. I love his perspective about "new" programming paradigms. Don't want to give too much away, here it is:
https://www.youtube.com/watch?v=ecIWPzGEbFc
And yeah, as a dinosaur, he knows Monads too and has a clojure perspective:
Here are the slides of the presentation:
https://github.com/unclebob/WTFisaMonad/blob/master/Monads.pdf
And... ah, here it is, the presentation itself:
https://www.youtube.com/watch?v=Usxf3aLimtU
don't fall asleep now (yeah, they are long but fun, for a certain type of programmers fun)
  (yeah, they are long but fun, for a certain type of programmers fun)
				
			https://www.youtube.com/watch?v=ecIWPzGEbFc
And yeah, as a dinosaur, he knows Monads too and has a clojure perspective:
Here are the slides of the presentation:
https://github.com/unclebob/WTFisaMonad/blob/master/Monads.pdf
And... ah, here it is, the presentation itself:
https://www.youtube.com/watch?v=Usxf3aLimtU
don't fall asleep now
 (yeah, they are long but fun, for a certain type of programmers fun)
  (yeah, they are long but fun, for a certain type of programmers fun)
				58
				Projects / Re: Project Infineon - An unorthodox procedurally generated Dungeon Crawler.
Last post by SilicateWielder -
					Official version is 0.4.4 DEVELOPMENT
There's not much added, however I have implemented voxel sorting to get proper rendering orders, however it's SLOW and has exposed a bug regarding how voxels determine visible faces. I'll have to fix this for 0.4.4.1.
An example of real-time voxel re-ordering during rendertime


				
			There's not much added, however I have implemented voxel sorting to get proper rendering orders, however it's SLOW and has exposed a bug regarding how voxels determine visible faces. I'll have to fix this for 0.4.4.1.
An example of real-time voxel re-ordering during rendertime


59
				Programming / Re: So I wrote a monad tutorial...
Last post by Fat Cerberus -
					Well, I mean, I do expect people reading a monad tutorial to have existing programming background, that goes without saying.  I will say that I think imperative programmers are better equipped to understand them than functional programmers actually, since we're the ones writing all the boilerplate in the first place.  Think of your Link.js library and the problem it solves 
Programmer-to-programmer: the thing is, the monad concept itself is not actually complicated, people just make it seem that way - sure, individual monad types are complex (promises, e.g.), but the monad interface is ridiculously simple:
That's it. If you implement that interface and satisfy the identity laws, it's a monad. Literally. That's all that's required. It doesn't matter what kind of abstraction it's an interface *to* (promises, arrays, maybes, eaty pigs...), you just need to implement the interface. The main thing is that the pattern this interface represents already exists in "nature"--you have to train yourself to recognize it though, and that's the actual hard part.
			
Programmer-to-programmer: the thing is, the monad concept itself is not actually complicated, people just make it seem that way - sure, individual monad types are complex (promises, e.g.), but the monad interface is ridiculously simple:
Code: [Select]
// entangle/unit/pure/return
let arr = Array.of(1, 2, 3);
let m = new Maybe("foo");
let prom = Promise.resolve(812);
// map
arr = arr.map(x => x * 2); // we know what this does
m = m.map(s => s + "bar"); // maybe it has a value, maybe not - it's a no-op if not
prom = prom.then(value => newValue); // just map to new value, no async shenanigans
// flatmap/chain/bind/thru
prom.then(result => new Promise(...)); // promise chaining
m.thru(value => new Maybe(result)); /* alternatively, Maybe.Empty */); // maybe it can fail
arr.flatMap(elem => Array.of(...)); // one-to-many mapping
That's it. If you implement that interface and satisfy the identity laws, it's a monad. Literally. That's all that's required. It doesn't matter what kind of abstraction it's an interface *to* (promises, arrays, maybes, eaty pigs...), you just need to implement the interface. The main thing is that the pattern this interface represents already exists in "nature"--you have to train yourself to recognize it though, and that's the actual hard part.
60
				Programming / Re: So I wrote a monad tutorial...
Last post by Radnen -
					I'm only loosely aware of monads and in theory know what they are. Like I knew that a JS Promise is a monad-like structure, but not exactly as to why.
I'd say I understand Monads a bit better from an imperative context, but I also think your tutorial isn't necessarily the easiest to understand. I think if one has a lot of programming experience, one can follow along, but at the very end of the day monads are complex, and must take a complex chain of thought to understand. And, if anything, actually making a monad and playing around with them interactively is the best way to learn.
But as for me, I will definitely say I came out learning a lot more about them. So, I do think it's effective for more seasoned programmers, Does it break the curse? I dunno, but I'm sure you'll find out someday!
			I'd say I understand Monads a bit better from an imperative context, but I also think your tutorial isn't necessarily the easiest to understand. I think if one has a lot of programming experience, one can follow along, but at the very end of the day monads are complex, and must take a complex chain of thought to understand. And, if anything, actually making a monad and playing around with them interactively is the best way to learn.
But as for me, I will definitely say I came out learning a lot more about them. So, I do think it's effective for more seasoned programmers, Does it break the curse? I dunno, but I'm sure you'll find out someday!
