tag:blogger.com,1999:blog-39965596764411052992024-03-09T06:01:03.529+11:00KelosophyScepticism, science, and the trivialities of life. What more could you want?Unknownnoreply@blogger.comBlogger819125tag:blogger.com,1999:blog-3996559676441105299.post-18885393146161959012019-01-14T12:37:00.001+11:002019-01-23T11:24:37.566+11:00It's always your political opponents engaging in a culture warThe art of modern political discourse is to treat whatever you issue you care about as either the status quo, or what would be considered the status quo if everyone thought about the issue for more than two seconds. Then any and all criticism can be framed as the opponents of the idea as "playing politics". This is true no matter if your ideas are on the left or right, authoritarian or Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-57514944803686365092019-01-06T09:03:00.002+11:002019-01-06T09:03:44.370+11:00The hills to die onThanks to social media, we now know everyone's opinion about virtually everything. And because of social media, the ease at which the right of reply can be exercised means we can nonchalantly stand a stand when needed. Or even just take a stand on whatever issue we feel like.
Politics, in this sense, means we're always on. There's nothing left on earth these days that can't be made political. Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-29115064966159182002018-12-25T22:46:00.001+11:002018-12-26T20:37:35.478+11:00"Culture wars" are lazy politicsAs far as the moral norms of both major parties in Australian politics goes, they're both middle of the road. Sure, there's the occasional far right winger in the Liberal Party that rallies against the prevailing norm, but politicians tend to know which way the moral winds are blowing and pander to it. Labor isn't a very progressive party in that respect, much to the chagrin of progressive votersUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-79596395611880205012018-11-17T14:57:00.001+11:002018-12-05T12:02:43.706+11:00We are all partisan hacks nowWhen I was younger, I thought the internet would improve political discourse, as it would take away the stranglehold of the mainstream media. Information wouldn't be filtered through a few agenda-laden voices, but there would be more of a focus on facts.
It's fair to say that I was extremely naive, and spectacularly wrong. Instead, as we all have come to learn, the internet has exacerbated the Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-12285079032531690002018-11-02T14:52:00.001+11:002018-11-02T16:03:21.138+11:00Try putting politics you disagree with in terms of positive valuesIf you can't articulate a positive account of a given political belief in terms of positive values, you haven't understood that belief.
With the erosion of political discourse online, it's often hard to get away from the partisan rhetoric and inevitable strawmanning. We have our own political narratives for our own beliefs, bolstered by a community of like-minded individuals, yet we are isolatingUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-62251703224139206032018-11-01T16:52:00.001+11:002018-11-02T14:27:44.592+11:00Welfare as a stick for conservativesMoney is a necessity in society. It's our agreed upon standard for facilitating most transactions. This fact alone justifies the need for welfare, because without it people cannot function in our society.
Its necessity doesn't mean it's well catered for, however, with crackdowns frequent and even modest increases being politically untenable on either side of politics. I used to think that it was Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-19725718172110040882018-10-11T21:56:00.000+11:002018-10-11T21:56:00.445+11:00Morality is sanctioned discrimination
With the question of religious freedom once again popping up, we get reminded that what people most want is the ability to discriminate against others.
In this case, religious schools want to be be exempt from anti-discrimination legislation in order to keep the school's environment within their set moral boundaries.
Similarly sitting the "I can't believe it's not a plebiscite" postal survey Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-29582991193308775532018-10-01T09:51:00.001+10:002018-10-01T09:57:34.638+10:00Happy Labour Day!It's always good to have a day off work, and public holidays are a great way to enshrine the balance between life and work into law. Labour Day is unique along public holidays in that it celebrates this victory for the rights of workers.
Yet it's another day off.
We don't really celebrate labour day here, not in the sense that we celebrate Anzac Day or Christmas. There's no reminder of what Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-51411536895944411892016-03-22T23:06:00.001+11:002016-03-22T23:06:33.538+11:00Terrorism As A Theological StatementWhat's important to remember about any religiously-motivated act of terrorism is that the act itself is a theological statement. Any such act must be countered swiftly and vehemently with the denial of the truth of their interpretation of the doctrine, such that the argument is put in its place once and for all. And the fact that it hasn't seemed to get through is all the more reason to repeat itUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-8885385696034096222016-03-06T23:33:00.000+11:002016-03-06T23:33:29.831+11:00The Parable of the Atom SeekerA young student grows up in a society that holds the belief where she, like everything else, is made up of tiny unseen particles called atoms. So after learning something about the methodologies of science, she decides to understand what the science is behind the atom.
What strikes her at first is how the explanations for the atom didn't fit at all into the scientific method, but relied heavily Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-7187195316346584302015-04-15T19:50:00.001+10:002015-04-16T07:58:51.901+10:00The Cult of HealthA few days ago, someone in my Facebook feed shared an article about how psychiatrists want to classify an obsession with health as a mental illness. The impropriety! How could it possibly be that wanting to be healthy be a disorder?!
I don't know if the article was correct, and I certainly don't know the details of psychiatric diagnoses, or what should be a disorder or not. I'm not a Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-12475142697754921632015-03-28T11:20:00.001+11:002015-03-28T11:20:19.853+11:00Game Review: Frozen CortexThe rogue-like FTL: Faster Than Light was an uncompromisingly difficult game, where playing up to two hours at a time could be undone by one moment of chaos. So many times I ploughed through that game only to declare the universe as being intrinsically unfair as a simple mistake cost me a good hour of careful planning, only to have to start over again. The illusion is that next time I'd get it Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-31400260386839655432014-12-15T18:00:00.000+11:002014-12-15T18:00:05.726+11:00Slipping Back into Old HabitsI have a lot more time to think about coding issues than I have time to code. In some ways, this is quite handy as it allows me to plan through certain problems and foresee potential pitfalls of a particular solution. I think there are two key problems with this, however. First, even if I come up with a solution it's still only half the job done. Second, it gets be bogged down in coding problems Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-15241572921010604002014-11-23T18:00:00.000+11:002014-11-24T09:04:54.396+11:00The How of A*(For the Why of A*, go here)
Here is a basic implementation of A*. Note that this isn’t necessarily an optimal solution, but it is a working one.
For my solution, I have two classes: Node and PathfindingAStar. The two classes are tightly coupled, with Pathfinding depending on Node to have certain properties in order to work. Node itself is the bridge between the pathfinding subsystem and the Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-12650392068529639952014-11-22T18:00:00.000+11:002014-11-22T18:00:04.095+11:00The Why of A*For pathfinding, breadth-first search (BFS) is almost always preferable to depth-first search (DFS). The general problem of a breadth-first search is that it is resource-intensive. Depth-first follows a single path that grows as the path is explored. Breadth-first explores multiple paths at once, with the amount of paths growing exponentially.
Both DFS and BFS are brute force attempts at findingUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-34154404732816952092014-11-03T19:54:00.000+11:002014-11-03T19:54:45.230+11:00Phase 3b: Flip SquaresWith Snake, I could contain the notion of a Level within the screen itself, starting at (0,0) for both the top left coordinate and the offset for rendering the game objects. Going forward, this was not sustainable. Furthermore, I had no way of capturing or processing mouse input on the screen – limiting the engine in effect to whatever could be done solely with keyboard. Finally, there was no wayUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-66748142059916833132014-11-01T15:08:00.000+11:002014-11-01T15:08:08.982+11:00Internet Debating: The Complete Idiot HypothesisIf you argue a point and someone doesn't get it, then it must be asserted that the reason they didn't get it is they are a complete idiot. Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-13432597180613554272014-10-31T20:33:00.000+11:002014-10-31T20:33:37.660+11:00Phase 3a: Snake EnhancedThe last couple of weeks has seen a continuation of the approach I took developing Snake. Since there is still more to be done getting the Engine to a functional state, enhancing the existing game seemed like the quickest way of those enhancements in.
The two major enhancements I had for the system were to get animation working, and to get level as its own concept. For the first cut of snake, Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-48800920175070165992014-10-25T18:00:00.000+11:002014-10-25T18:00:03.327+11:00Jonathan Blow on Programming PracticesSince the game programming is a hobby of mine – something I do in my spare time – I tend to have a lot more time to think about what I do than to actually do it. I have filled many pages of notebooks and have made many documents with notes ranging from design material, to specific solutions, and everything in between.
So it’s with that in mind that the following video from the Braid developer Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-50665460201543985172014-10-24T18:00:00.000+11:002014-10-24T18:00:14.577+11:00Prototype-Driven DesignThis is designed to be a normative approach based off the three [1, 2, 3] development approaches I wrote about earlier. Namely, how to take the use cases of a simple game to develop and refactor an extensible and versatile underlying code. This is a note to myself for next time.
Bootstrapping the framework
A game is a loop, and the loop has an exit condition. Hitting the exit condition exits Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-72708340196557842382014-10-23T18:00:00.000+11:002014-10-23T18:00:00.478+11:00Toward a 2D Game Engine: ReflectionsTwo things that have become really obvious through this process are that a) my C++ skills are really rusty, and b) my expectations are grossly unrealistic. The idea of how long something should take should be calculated only by my present abilities, not by ideal circumstances if only I were in possession of all the relevant knowledge and an industrious disposition.
This is not the first time Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-91434144241915712702014-10-22T18:00:00.000+11:002014-10-22T18:00:01.123+11:00Phase 3: SnakeFeeling somewhat dejected at my inability to move forward, I decided to give the Engine a test run by making a simple game: Snake. I had a bit of time off work, so I thought it could be something I’d do in a day or two and then build from there. To get it fully working ended up taking much longer, though that was partly because I spent my holidays having an actual break.
What it did teach me, Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-24991086445686534352014-10-21T18:00:00.000+11:002014-10-21T18:00:03.220+11:00Phase 2: Proof of the PuddingAfter a busy phase of work (partly self-inflicted) in the first half of this year, I found myself again ready to get back to the project. I took stock of what I had done and what I still had to go. Then, like last time, I tried knocking off a TODO list.
This time, however, I tried to be a little more advanced in putting new features to the test. To have input fully working meant to be able to Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-54008187309431058742014-10-20T18:00:00.000+11:002014-10-20T18:00:01.146+11:00Phase 1: The Grand DesignAt its core, a game does the same thing. It has to render images, play sounds and music, capture input, and do things with that input. A game loops through those various responsibilities, so the more structured and separated those responsibilities are, then the more flexible this design is.
When looking through my old code, one of the things I noticed was how often I used a quick-fix in the Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3996559676441105299.post-51319917069377731912014-10-19T18:47:00.002+11:002014-11-03T19:56:00.118+11:00Working Toward a 2D Game EngineGoing back 12 years as an 18 year old faced with a choice of what university course to do, I put down a bunch of courses at my local university, with computer science being the main preference. After my exams were over and I faced the wait to see how I did, I came across a computer science degree at a different university that specialised in game development. I switched preferences, thinking thatUnknownnoreply@blogger.com0