Sometimes installing phpMyAdmin manually, as opposed to using apt
, is necessary. This might be because you're using MySQL 8 and/or PHP 7 and the version provided by Ubuntu's apt repository either won't install or won't function with this setup. You also may just want the latest version for the virtues that come with staying up-to-date. Whatever the reason, this tutorial will run you through the basic process of doing so.
The server I'm using is running Ubuntu 18.04 (though this tutorial will likely need little to no revision for previous versions), Apache 2.4.37, MySQL 8.0.13, and PHP 7.2.14. The latest version of phpMyAdmin at the time of writing is 4.8.4.
Read moreHaving spent a fair bit of time lately setting up new servers and installing LAMP stacks, I figured I'd write a tutorial on the basic process I use. And while there are plenty of tutorials covering the installation of the LAMP stack on Ubuntu, there aren't many I could find which ensure that latest versions of each component are installed.
Therefore, this tutorial will run you through several fundamental things that should be done to set up any Ubuntu server, such as user creation, SSH configuration, and firewall setup. Following that, it'll take you through installing the latest versions of Apache, MySQL, and PHP. At the time of writing, these versions are 2.4.37, 8.0.13, and 7.2.13 (discounting the very recent 7.3.0), respectively.
Read moreAs mentioned in the previous post, over the last few years I haven't made use of or added anything to my website, due to a mixture of the system being a hassle to use and more important things taking my time. A fair chunk of my time have been devoted to my computer/software engineering degree at QUT, which has been a great experience thus far. That said, this post aims to summarise the things I've done and released that weren't added to the website during this time.
First I participated in two more Ludum Dares, three if you count the fact that I didn't make a post about Super Space Invader, the result of Ludum Dare 31. Ludum Dares 34 and 37 resulted in Labyrinthian and Keeper of the Altar, respectively. I'd count Super Space Invader, an action-packed two-button arcade shooter, as the most polished Ludum Dare game I've ever made. Labyrinthian had an interesting vibe and gameplay mechanic but was a bit letdown by its implementation. Keeper of the Altar was another well-made arcade game by my standards, with similar features to Super Space Invader; my third best Ludum Dare game in my opinion.
Read moreAfter four or so years of inactivity I decided I'd give the website an overhaul. I registered a new, better-looking domain (ebens.me) and over the past couple weeks I've programmed a new system and ported over the majority of the content from the previous website (nova-fusion.com). The main noteworthy features are a revamped games section and new photo gallery showcasing some of the photos I've taken over the past few years.
As good as Jekyll (what the old website ran on) was, it had become cumbersome for me. Regenerating and uploading the website after each change took longer with each new piece of content and eventually became too much for me to bother. Besides this, I wanted greater and easier flexibility for different types of content; perhaps Jekyll has improved here, as it's been a long time since I've kept up-to-date with the project. That said, my favourite about Jekyll was being able to update a site based on text files, so I incorporated that functionality into the new system. Files are pushed to the server using Git and the server updates its database using the diff produced by the push. It's convenient and Git pushes are often quicker than comparative SFTP uploads.
Read moreFor pretty much all of this year I haven't really been doing any game development (nor posts). But I'm starting to get back into it now; a couple weeks ago I started working on my arena shooter again, and now I've participated in the 27th Ludum Dare. It would seem my period for "not participating in the main competition" was only eight months. :P
The game I made is called Triad. You can download it from the previous link, or rate/comment at its Ludum Dare page.
Read moreWell, I participated once again in Ludum Dare and managed to succeed in creating a game (unlike last time). The game I created is called Amongst Shadows, and you can play it here on my website, or rate/comment on it at its Ludum Dare page.
Anyway, on with the post-mortem.
The theme was "You are the Villain"; I had hoped it would be "End of the World", given the date and that I had a good idea for it, but that was not to be. Now this was a somewhat difficult theme for me, because I hate playing characters of the evil archetype; I wasn't going to create some mindless mass-murder simulator. I decided to make the morality of your actions somewhat ambiguous. You're on an infiltration job for some mysterious organisation, you're probably a mercenary, making you morally grey. Furthermore, it isn't clear whether this organisation is good or bad, though it's hinted that they're bad.
Read moreThis is just a post announcing that Ammo 1.0 has been released (changelog). After a couple months in the 0.x range, I feel it's ready to be pushed up to 1.0. Hopefully soon I can create some tutorials for the library; the documentation is complete and up-to-date, but documentation isn't particularly good at conveying the big picture.
Anyway, if you've got any feedback on the library, please let me know.
Read moreAs an example of creating custom data structures in Lua, I thought I'd give a little demonstration of a linked lists implementation. Note that this isn't going to be an in-depth tutorial or anything; for the most part I'll just be showing pieces of the code.
Linked lists are wonderful data structures, perfect if you need to efficiently add, remove, and iterate through elements. The one trade off is that you can't find an element by an index.
Read moreThis announcement post is a bit overdue, but, better late than never. A short while ago, I released the first version (0.1) of Ammo, my organisational library for LÖVE. Its current version is 0.1.3. I plan to let the library stay in the 0.x range for a while as it's tested by me and any others who use it.
Along with the core library, there's a number of extensions available. The one I'm most excited about is ammo-debug, a versatile, highly customisable debugging console. It provides stuff like output logging, a command system, info graphs, and even simple live coding support. At present its version is 0.2.
Read moreWhen making a game in LÖVE, you'll probably end up needing to customise the mouse cursor. As I recently had to do just that, I thought I'd make a quick tutorial on it. If you want an example cursor, here's the crosshair I'm using in a game right now.
Now, all of what we need is contained within the love.mouse
module. The first step is to hide the mouse with love.mouse.setVisible
. You'll probably want to do this in love.load
:
If you haven't read the previous parts (one, two and three), then I'd highly recommend doing so. For reference, here's a list of the parts in this series:
Command line arguments are stored in the arg
table. For example, if we had the script foo.lua
:
If you haven't read part one and two already, I'd highly recommend doing so. For reference, here's a list of the parts in this series:
In part one I stated that Lua has "braces of a sort in the form of keywords like then
and do
." Much like a language with C-based syntax, these "braces" represent blocks, which are essentially sequences of statements. An example of some blocks in Lua:
If you haven't read part one already, I'd highly recommend doing so. For reference, here's a list of the parts in this series:
Tables are essentially associative arrays which can have keys and values of any type. Tables are incredibly flexible, and are the only data structure in Lua, so knowledge of them is crucial.
Read moreIn this series we'll be taking a look at most everything you should know to program in Lua. The series is targeted at people who already know how to program, and as such I'll aim to be brief in my explanations.
Here's an overview of the four parts the compose the series:
In case you didn't already know, Lua is an interpreted programming language. It's fast, flexible, embeddable, simple, and easy to learn. You can get Lua from its download page.
Read moreWell, it's been some time since I've released a test build for Illusive Dreams hasn't it? Work on it has been very slow lately; both I and Jeremiah haven't done all that much on it during the last few months. Nevertheless, a lot has happened to the game since the last test build, and I thought it best to release a new one before I go off to Brisbane. You can find the build here: /games/illusive-dreams/test. Any feedback, suggestions, etc., would be most welcome.
Read moreI thought I'd share a few quick tips on getting more ratings, which I've picked up in my experience with Ludum Dare. Please note, I'm not putting this down as fact or anything, but merely expressing my own opinion.
Yeah, this one's kind of obvious by now I'd say. Your "coolness level" increases by one per game you rate, and the cooler you are, the higher chance you have of getting rated. Games are picked for people to rate both by how high the author's coolness is, and how low the number of ratings are.
Read moreWell, I think it's about time I made my Ludum Dare 23 postmortem. First of all, I blame not posting in a long time on my seemingly inherent laziness. Procrastination is an easy trap for me it seems, but that's another topic altogether.
Back on subject, the latest Ludum Dare took place between April 21st and 24th, with the main competition ending on the 23rd. It just so happens that this event was Ludum Dare's 10th anniversary, which is pretty awesome.
Read moreLast weekend was Ludum Dare 22, and of course, I participated. The game I created is entitled Uncorrupted; there's more information available at its page on my website and on Ludum Dare. You could also check out the time-lapse of my work on the game.
Read moreThe fourth test build for Illusive Dreams has been released. Chapter two has been finished, with nine new levels, in-game text replacing cutscenes, and many other modifications and fixes.
I haven't been able to do anything with the commonly reported "white screen" bug, as I'm not able to reproduce myself. Please let me know if it occurs in this build. If it hasn't disappeared, I'll have to put more effort towards hunting it down.
Anyway, all feedback would be greatly appreciated. Thanks!
Read moreI've now released the third test build for Illusive Dreams, and as usual, it's bigger than the last one. There's eight new levels, re-arrangements of previous levels, another night time music track, and many modifications and fixes. Check it out and let me know what you think. Thanks!