Everyone, please share games or other projects that you did before moving to Pokitto Land? Or if you have time to other projects currently?
All my hobby coding is Pokitto-related nowadays, but here are a couple of my past projects:
Retro Arcade Factory
I did this for Android using Unity & C#. It was ment to be creating and sharing games made of a mixture of retro game parts. So it was a bit like Super Mario Maker before it existed
Lumberjack Dash
I did this for Android over GLES 2.0 with C++. The graphics etc. were made by a Hyperkani game company. It is a lot like Subway Surfers for Android.
Fun fact:
The original Legend of Zelda was supposed to have a facility for creating maps/dungeons which players could share,
but the idea was scrapped due to the lack of resources and relative difficulty of making it work on the limited hardware of the time.
(Iāve tried looking for a link to an article discussing this, but Iām having problems finding one.)
Edit:
After much digging Iāve finally found a gamespot article that mentions it:
We almost had ZeldaCraft: Dungeon Building.
Originally, the game was set to launch on floppy disks, so players could use the memory storage to create and share the dungeons they created. Once Nintendo decided on cartridges for the officially named Nintendo Entertainment System, that idea was ditched.
(For a moment there I was worried that Iād imagined reading it.)
I suspect this information was given in an interview somewhere,
or maybe itās in Hyrule Historia (which sadly I donāt own a copy of).
Before coming to Pokittoland I worked almost exclusively on a Fantasy Console I called Leikr16. The reason I was making it was that the Fantasy Consoles at the time that I knew of all used Lua as the coding language and I wasnāt familiar with it, nor too fond of it (Iām learning it now).
I began work on Leikr16 to learn Groovy. So I used LibGDx for the console parts itself, and implemented Groovy as the code language for the games. I learned a great deal about a lot of things during this project but ultimately it started to grow unwieldy and kind of crappy.
So, I started over on a new Leikr (without the 16) and used the Mini2Dx framework instead. It has a much simpler API and is way easier to use. Especially since I was only doing 2D anyway.
I still work on this project in my spare time, it is my āprimary side projectā really.
I recently got a PinePhone Braveheart edition. This is pretty quickly becoming another primary project. Iām working with some other folks to port Fedora Linux to it. So far it can boot to a nice mobile environment and I can almost do SMS without too many problems. Iām currently tasked with packaging a ācallsā application so we can make phone calls (on a phone, how novel xD)
Iāve got a Librem 5 phone on pre-order as well, and expect to also spend a little time porting Fedora to that as well.
I have a dream, hopefully that I can realize before end of 2020, to be completely living on Linux operating systems. (I know Android uses linux, but it isnāt the same thing as a desktop free linux).
I have a GameShell that Iād like to actually do something with, but it kind of just sits on a shelf for the moment with my PyGamer GameShell is awesome for me because it can run my Leikr project, since it is just a Linux board (similar to Raspberry Pi). I havenāt powered up PyGamer more than once, since I always prefer to come back to my Pokitto
And finally I also am learning Lua as I mentioned in order to make games using Pixel Vision 8, which is actually my favourite Fantasy Console (even more than my own at the moment ) But it uses Lua (Or C# but setting that up on Linux has proven to be more trouble than just learning Lua).
Iām so scattered in my projects, but Primarily the order is as follows:
- Pokitto (My IR project, GameJams, Magazine etcā¦)
- Leikr (It can be used to make full games now, just needs some āprettifyingā )
- PinePhone (and sometime this summer Librem 5 I hope)
- PixelVision8
- Other (this would include other fantasy consoles mostly, GameShell, PyGamer, etcā¦)
Non-Tech related:
I spend time every morning to study foreign languages. I currently do this using DuoLingo. So Iām currently learning:
- Danish
- Swedish
- Norwegian
- Irish
- Japanese
- Chinese
If I have time in the morning I also do some of the following:
- Russian (I went to University to learn Russian)
- Spanish
- Welsh
- Scottish Gaelic
- Klingon
My current daily streak on Duolingo is 1,853 and yet, I probably couldnāt even hold a decent conversation in any of the above languages (More due to lack of actual use with native speakers. Iāve had plenty of conversations in Russian and Chinese, since I learned those at University)
Oh yeah! I also used to (and plan to take up again) play a lot of musical instruments. That took up a large part of my youth until University. I play Flute, Piccolo, Fife, Ocarina and Penny Whistles. Iāve also been attempting to learn the Didgeridoo that circular breathing is kicking my butt.
Normally I donāt like dynamically typed languages, but I really like Lua.
Certainly more than Python and JavaScript.
Ramblings about Lua
The memory usuage is probably higher than other languages,
but the actual files required to run it are smaller than most scripting languages,
and itās an excellent replacement for most shell scripting languages,
and an excellent tool for portable scripting facilities.
At the moment Iāve been using it to manipulate youtube-dl without having to remember a load of command line switches.
(Itās also the third programming language I ever learnt,
and the second that I became proficient in.)
Itās a very easy language to learn if youāre already a programmer,
and probably quite easy for beginners too.
Iād really like to bring it to the Pokitto someday.
Iām glad you mentioned these.
I like to keep an eye out for phones that donāt use one of the ābig 3ā OSes (Android, iOS, Windows Phone).
(For a number of reasons, including being able to say āno, I canāt download your āappāā.)
At the moment Iām still using an old motorola V220.
Iāve had it for over a decade and it still just about works,
but this year itās finally starting to show signs of hardware failure.
Iāve had far too many one-shot and aborted projects to count.
Iāll mention a select few.
Relatively successful projects of the past:
Zephyr OS
Back in my early years when I was first learning programming at college I was introduced to Minecraft.
One of the earliest mods I discovered and used was Computercraft, which added ācomputer blocksā.
The computers run a Lua VM with commands for interacting with the computer (e.g. drawing text on the screen, both coloured and uncoloured - the screen was effectively just an array of characters with a background and foreground colour, much like the available display modes on early computers, particularly early VGA) and with things in the world around the computer (e.g. emitting redstone signals, interacting with peripheral blocks).
To begin with the computers exclusively used a command line interface,
though some alternative āoperating systemsā were available and could be used to override the default OS,
so (being more used to windowing systems and wanting to learn more about operating systems) I attempted to create an āoperating systemā with windowing features and UI elements like listboxes and textboxes.
Like most of my projects, it got a bit off track.
I started reading a book called āOperating Systems Demystifiedā and tried to rework Luaās coroutine system into a threading system that behaved more like OS threads,
as well as trying to introduce processes and drivers and various other things.
Thus feature creep and inexperience effectively killed the project.
(The original OS also eventually added a Window API, though not a desktop.)
I still have the source code.
Hereās a few screenshots, made back when I was originally writing it:
Fixed Points (for Arduino)
One of my few successful projects, and arguably my most successful.
I expect most of you already know about it,
because itās used to implement the floating points in Femtoās Java implementation.
https://github.com/Pharap/FixedPointsArduino
Iāve still got a dozen outstanding issues to fix,
and originally I was going to create a non-Arduino version as well,
but I can never find the motivation to get back to it.
Wiremod scripts (Garry's mod)
Sometimes I play Garryās mod.
I like the Tardis Rewrite and Stargate (CAP) mods because I quite like scifi,
and I like Wiremod because I like being able to do in-game scripting.
I havenāt written many scripts, but I have two notable ones.
Tardis Hologram:
One day I decided that the Tardis would be cooler if I could have a little holographic tardis inside it,
so I spent some time researching the wiremod holograph system and eventually developed a script to do just that.
Over time I developed it further, and now it has several features:
- When hooked up correctly, the hologram will match the Tardisās rotational orientation,
meaning it spins and flips around in sync with the Tardis exterior,
which is useful if you want to know whether the door is the right way up or not.
(If youāre the one flying the Tardis then this isnāt all that useful, but itās handy for passengers.) - A āshieldā input that displays a shield around the hologram,
designed to be used in conjunction with shield mods for adding a shield to the Tardis. - A ācloakā input that makes the hologram transparent,
designed to be used in conjunction with cloaking mods for adding cloaking to the Tardis.
Stargate Dialling Computer
A half-decent replica of the original dialling computer animation from the Stargate film.
Itās missing some details and doesnāt use the DHD symbol font,
but otherwise the animations are pretty spot on.
At one point I attempted to make a PR to make the fonts accessible,
but I got swamped with feedback and requests for changes from the maintainers so I decided to bail out because it wasnāt worth the hassle.
Special mention:
I once hooked up some of the Wiremod and Stargate stuff to create a gun control chair that you could sit in and use to aim the stargate weapons like a proper crosshair/gunsight thing, but I canāt remember how I did it off-hand.
Iām not sure if it involved a script, and if it did Iām not sure what I called that script.
If anyone is interested in any of these then I can provide them on request.
Current Projects:
Ardutils
An Arduino utility library.
Iāve attempted this multiple times over the last few years.
Typically every attempt ends with me realising Iāve stopped making an Arduino utility library and instead Iāve effectively been reimplementing a large chunk of the C++ standard library.
Iāve reimplemented 90% of <type_traits>
and <utility>
at least three times already.
Iāve recently started another attempt.
So far Iāve managed to avoid implementing <type_traits>
, and might manage to get away with just doing a small subet of it.
But now I find myself spending a lot of time writing the documentation for it.
A programming language
Sometime in (I think) January I started designing a programming language.
Itās based mainly on C++, but with inspiration from a variety of other languages to reduce the amount of little niggles.
I wrote a parser that parses most of the basic structures and generates a syntax tree,
but I donāt yet have anything that can actually generate code, do type analysis or perform optimisation.
An artificial/'fantasy' CPU
After writing the parser for my programming language I suddenly discovered that generating code is difficult.
I considered learning ARM or AVR assembly and generating code for Pokitto, Arduboy or GBA (via an emulator),
but I soon realised that I would also have to know how to manipulate the hardware,
and in the case of the Pokitto and Arduboy Iād run the risk of bricking them.
So instead I decided to design my own CPU and write an emulator for it.
Which I mostly did, but then I got hung up on the tiny details, such as:
- Do I support pre/post increment/decrement modes, as ISAs like the PDP11 and AVR do?
- Memory mapped IO, port-mapped IO or both?
- Whatās the best way to implement the stack?
- Should it grow up or down?
- Should I include a base pointer?
- Should the user have direct access to the stack pointer?
- Should there be āpushā and āpullā instructions?
Et cetera
Things I should be doing instead of writing this reply but keep putting off:
- The portraits for the Arduboy magazine
Special mentions:
- Iāve provided small bits of help and advice for the Arduboy2 library from time to time.
- I semi-regularly provide help, advice and information for anyone working on a project that asks me.
Usually itās Arduboy projects - I donāt get many people asking here for some reason.
If I had to guess Iād say itās probably because most of the active users are already very experienced programmers.
Other talents:
Unlike @torbuntu, programming is pretty much my only talent.
I can do mediocre drawings, I know a tiny bit of French and German,
and barely enough Japanese to upset the Yakuza.
I canāt sing, I canāt dance, and Iām too tone deaf to play an instrument.
The list of things I canāt or donāt do would easily fill up another text wall.
(I do have an minor qualification in Psychology though (AS level I think).)
If anyone wants any more information about any of these projects, feel free to send me a PM.
Some of my projects from the time before Pokitto:
- Various projects using ARToolKit. It can be used for augmented reality stuff to overlay 3d objects on realtime video, but I used a webcam and ARToolKitās paper markers as 6-DoF controller in a submersible racing game, to control sound pitch and volume in a theremin music program and as a 3d paintbrush.
- Solar energy tool to visualize solar irradiation on selected surfaces of a 3d model. Originally developed in C++ for my masterās thesis to study production of solar energy in a residental area. Later ported to C# and to python as an add-on for blender3d. Iāve also used it for garden planning to find the sunniest spots for plants.
- Ray Tracker, a tool that uses ray tracing techniques to generate tracker music files instead of images. Instruments are dots in 3d space with speed and direction. They are located inside objects and played every time they bounce from a wall. Sound pitch and volume are determined by wall texture at the point of impact. Also included ray tracer to visualize the 3d scene.
- Physical modelling synthesis of string instruments (violin, piano and guitar). The most challenging part was making the excitation functions that model physical interaction between the string and violin bow, guitar pick or piano hammer.
I like didgeridoo because anyone can play it no matter how tone deaf you are. Iāve made myself a couple of didges from plastic water pipes and one from paper towel tubes, newspaper and a wooden mouthpiece. Iāve never tried a real one so I donāt know how bad sounding these DIY ones really are, but at least they make a sound.
Circular breathing was, at least for me, not as impossibly difficult as I first thought. Of course there are different techniques, and it takes a lot of practice to really master it. But basically, if you can breath through your nose while holding air in your cheeks and squeezing it out between your lips (it is easier the more resistance there is), then you are already doing circular breathing.
Iāve been building this
Im still waiting on the headlight for it, and I have to make the brake light, and rear marker light, the handbrakes have switches in them to activate the brake lights,
but now I have to figure out why my back wheel is off center I am afraid the frame may be a little out of true.
it got almost 30 mph today when I tested it, but the pedal chain broke on me, not sure how but one link is missing one side.
Eh, Iām sort-of all over the place. Most of my career has been a full-stack web developer (including the frontend design stuff), but Iāve also done a few years working in freelance VFX and print design work. Most of my (now several years old) design work is on my personal site, and I also do some design and programming work that I usually forget to post there.
Lately, Iāve been into fantasy consoles in a big way, and I have mostly @torbuntu to thank for keeping my interest in them high. Where others seem to have lost interest, heās always excited to see peoplesā progress and is always encouraging via his sheer level of excitement (that excitement about Pokitto is primarily why Iām here). I created my first full game release on his (second) Leikr system to help me understand and document it better: https://pixelbath.itch.io/flappybirb-leikr
Tangentially, I love video game console homebrew quite a bit too; Iāve got a rudimentary pong game (with weak AI) on the Wii, am currently helping with a Goldeneye 64 port to the PSP, and Iāve started creating a Pico-8 interpreter on the PSP (it works, but performance is currently 6fps).
Most of my hobby time goes into console homebrew (Iām keeping my own wiki), personal infrastructure (currently working on removing all cloud-based stuff and replacing with private cloud stuff), contributing to open source projects (usually homebrew-related), art (I do mostly Blender, but pixel art and vector illustration as well), or video games. I work on pixel art for game assets, but Iād really like to sit down and push this skill further.
Language-wise, Iām semi-fluent in Spanish (Mexican variant), and am currently learning Japanese. For the latter, Iāve only got a minor vocabulary and maybe 75% of the hiragana memorized.
Iāve got some music theory under my belt and can (barely) play piano by ear. I played the drums in high school, and nowadays doodle around in Ableton and Reaper, but I havenāt really sunk serious time into it since I donāt have room for all my equipment yet.
I have a '69 Mini that needs restoring. It is pretty good already, but it was once white and the interior paint is still white and the seats red. I need to repaint it and swap the interior for black.
Oh, I also restore old school BMX bikes - especially Australian made ones.
Iāve been under a rock for the past 15 years. There was a time I was a bit of a MAME developer, and I designed mod kits for arcade games. I havenāt done that lately but I still have 2 garages full of rare games, (and a few cars). Just need more free time. Now that the kids are older Iām getting back into games a bit.
I was thinking an MG Midget or even an Sunbeam Tiger. Edit: no the rear quarters arenāt high enough.
Yeah, bingo. 64 Sprite. Itās a former dragster, set up for a small block chevy. Itās more of a long term project. Iāve got a Lincoln Iām getting ready to paint now and a Chevelle in the middle of an engine swap in the other shop.
I just looked up Sprites ā¦ I never knew they were exactly the same car as the Midget. I thought they just looked similar.