Category Archives: Resources

Making Games to Learn Programming with Pico-8

There are a lot of reasons to start making games to learn programming. Games are fun. They are the epitome of creative coding. Unlike to-do apps, games are something you are excited to show to your friend because it is something they will engage with. There is a misconception among some developers that games are difficult to code, and unapproachable to beginner developers. It’s also a great first language in coding for gamers.

I didn’t really get excited about learning to code until I started making games. As a creative coder, games have always been by far the most interesting to me. It’s quite possible I never would have become a software engineer if game development wasn’t one of the applications. As a kid games like Rayman, Zelda, and Donkey Kong filled me with excitement. I remember a feeling of joy when I finished a level or beat a boss that I wanted to shout it from the rooftops. With Pico-8, you will programming simple games, but some of them might remind you of those games from your childhood.

The fact that I have the skills to build games like that myself as an adult fills me with pride. That is because I know the kid I was before would have looked at the adult me with awe. Of course some days I forget about that when I am struggling with a frustrating bug. But at the end of the day it is the main reason I do what I do. We all have an inner child who we want to satisfy, after all.

It is possible today to learn all of the major programming concepts through making games. Although I did not do that myself, I think it would have made my experience much more engaging. My first real foray into programming was in college where I took a few programming classes, and some days it was a real drag.

Pico-8: The Perfect Platform

A year ago a friend showed me a game engine called Pico-8 for making minimalist pixel art games. I initially rolled my eyes at it, because I thought myself sophisticated making games in Unity. I thought that making games with Pico-8 was like advertising to the world that you don’t know what you are doing. Now I couldn’t disagree more.

Every Game is a Pico-8 Tutorial

The first thing that is amazing about Pico-8 is the community. Every one is passionate about learning and sharing, and many members of the community make their own Pico-8 tutorial (s). There is such an incredibly giving and supportive network of folks who participate in the forums. They are also active on Twitter and Discord and beyond. In fact, some users even post Pico-8 code snippets as tweets!

The pico-8 forums are a goldmine

Many software developers believe in open source and sharing their code on GitHub. But in the game development world it’s not so easy to get access to raw code. The AAA world obviously has every line of code concealed behind 10 page NDA agreements. Indie game developers tend to be cautious and perhaps paranoid about people stealing their game.

Thankfully, on Pico-8 that could not be farther from the truth. Every game uploaded to the website allows you to view the code right in the browser, right below the game window. You can copy and paste it right into your own game, no strings attached. That is another reason that makes Pico-8 an exceptionally good option for making games to learn programming.

Simple Coding Language

Pico-8 runs on an easy to understand programming language called Lua. If you’re looking for a Pico-8 tutorial, there are plenty to choose from. In many ways it resembles Python and doesn’t require and pesky semicolons or parentheses all over the place. It reads a lot more like English than a lot of other programming languages do.

Pico-8 also has limitations on the complexity of the logic in the game, which it counts with “tokens.” This forces people to simplify their games and keep the scope reasonable. That is great for beginning programmers. It helps to avoid temptation to code something the long way instead of looking for a solution with fewer lines of code.

Documentation and Tutorials

Programming languages, frameworks, and API’s live and die by their documentation. The quality of the documentation often goes hand in hand with the quality of the community. Since I already wrote about the community, you can probably guess what I will say next.

Just one of the many fanzines you can get on

I bought a zine on which breaks down Pico-8 into its different parts. From explaining the user interface walking you through steps to build basic games, it covers a lot of ground. It’s the type of documentation which is not only thorough, but very beginner friendly.

Great Games

You might have similar thoughts to mine when you glance at your first few games on the Pico-8 platform. Certainly they aren’t going to blow you away with their graphics the way that some Unreal Engine games do. But believe it or not, there are some real gems and even best seller games that were made with Pico-8.

The most notable example is Celeste, a critically acclaimed platformer where the original prototype was built with Pico-8 in just four days. Beginning programmers should not expect to make a bestselling game. But it is encouraging to know Pico-8 is a platform where that is possible.

If you enjoyed this article, consider following me on Twitter @nadyaprimak or if you need more tips on breaking into the tech industry, you can read my book “Foot in the Door”.

Building a VR Game: My Top 5 Tips

About a year ago, I released my game Nightcrawler VR Bowling on Steam. It was shortly before Steam got rid of their Greenlight program, and VR games had the privilege of skipping the voting process because Steam was looking to get more VR games on their platform. Building a VR game won’t be easy, but with these tips you can have a smoother start and learn a little bit faster.

Putting a game on Steam was something that was on my bucket list, so by no means do I insist that step is necessary, but it does help to learn how the process works and what sorts of information game developers have access to. I do plan on releasing a more impressive game on Steam eventually, but for the immediate future I’m making Nightcrawler VR Bowling free, so anybody can try it out if they want to.

I learned a lot from making this game, and wanted to share some of the pitfalls and strategies and helped me make Nightcrawler VR Bowling a reality.

A screenshot from “Box Shooter” the game which I converted to VR

Take a simple 3D game and convert it to VR before starting.

In my case, I took a game I made in a class on Coursera called “Box Shooter” (the link will take you to the game) where you are placed in an arena full of multicolored moving blocks and you shoot different colored boxes for points. By converting it to VR instead of starting on a game from scratch, I was able to think about the specific VR challenges in terms of user interface and input separately from all of the other game design challenges that were independent from VR. It also gave me a quick win that helped fuel my drive to keep going.

A screenshot from one of the input utility example games

Use a game engine that already has VR kits and input utilities, and test them out

This one may seem obvious, but especially if you haven’t made any other games previously you may not know about these tools. Unity has a TON of great VR kits and input utilities to get you started, which include examples for you to play around with. Make sure you open those examples in your VR headset and try them out before getting started on your game.

Beat Saber, a very popular game, actually has relatively simple interactions… just hit the squared with your sword

Keep your controls and interactions simple.

Your first VR game is not going to blow anyone’s mind (unless they’ve never put a VR headset on before). The best way to gain experience and not to give up halfway is to make a simulator game. In my case, I decided to simulate a game of bowling. It’s easy to get super excited about VR and come up with a pie-in-the-sky idea but you will almost certainly either become too intimidated and give up altogether or end up settling for something that you’re not at all satisfied with. If a simulator seems boring, try to think of how you might put a twist on it. In my case, I created a surreal environment for the bowling experience. You will be much happier with yourself and your game if you actually attain the goals you set.

Yes, you will probably look like an idiot while playtesting. No, that should not faze you.

Get comfortable inside the VR environment

You will be playtesting your game a lot. If you’re not sick of playtesting by the time your game is finished you’re doing something wrong. There is no such thing as too much playtesting. That being said, you should get comfortable inside the VR environment before you start playtesting, because some things will feel unnatural at first just by virtue of being in VR. It also helps to get other people that have played in VR to play your game, but obviously you cannot ask your friends to play your game hundreds of times. Yes, you will probably end up playing your own game hundreds of times. After all, every time you make a change, you gotta put that headset on and check and make sure the game is working like it’s supposed to. Make sure your headset fits or you will have one hell of a headache by the time you’re done!

VR simulator games like “Job Simulator” are a lot of fun and great to take inspiration from.

Take inspiration from what’s out there

This tip should be taken with the “keep it simple, stupid” principle in mind. You might be inspired by VR games which were made by a team of professionals. That is cool, but you are not going to make that game (if you do, please message me and I will send you cookies). There are tons of awesome VR simulator games and other games that might sound simple or even boring but are actually tons of fun to play. Taking a look at other games will also help you see what is (and isn’t) possible.

Okay, that’s all the tips I’ve got for now! Another thing you can try is joining a game jam, something I write about in this post here. Think I left anything out?

If you enjoyed this article, consider following me on Twitter @nadyaprimak or if you need more tips on breaking into the tech industry, you can read my book “Foot in the Door”.

Net Art Resources | Why I Miss the Early Internet

Following up from my article “Why I Miss the Nineties Internet” here are some useful resources if you’re interested in getting involved with creative coding in the net art space or want to take a look at some old school websites for yourself.

The Wayback Machine allows you to search URL’s from the past and see screenshots of old websites. It’s an impressive archive.

Similiar to the Wayback Machine but appears to retain some interactivity as opposed to simply a screenshot of an old webpage. Actually simulates the browser window.

Web Design Museum has screenshots of many of the early versions of major corporate sites like Paypal, Netflix, and Apple.. but it also has tons of lesser known websites that really show the range of design experimentation that was happening in the 90’s and early 2000’s. It’s a great source of inspiration for artists who want to draw on that sense of old internet nostalgia.

Rhizome is a hub for digital artists who work with the web. It was founded by Mark Tribe when artists were just beginning to experiment online and has an impressive archive. There are tons of creative coders featured on this website who combine art and technology in unique and fascinating ways.

I had the pleasure of meeting Patrick Lichty in person when I was in college. Lichty has been practicing with digital media long before I was born and wrote these insightful essays on how digital art has evolved from the very early days.

A classic piece of net art “My Boyfriend Came Back From The War” was made back in 1996 by Russian artist Olia Lilinia.

Made by Victoria Dominowski, this is another game that draws on nineties internet nostalgia, but focused more on the AOL chatroom aesthetic. Even the name “safe little haven” reminds me of how I felt about my computer back then.

I hope you find these net art resources useful! Are you inspired to make an experimental game? What do you think of the internet of the nineties? Do you have a favorite artwork or game among those which I shared? Any ideas of your own about how to improve the internet and make it a better place? Please share your thoughts in the comments below.

If you enjoyed this article, consider following me on Twitter @nadyaprimak or if you need more tips on breaking into the tech industry, you can read my book “Foot in the Door”.

Creative Coding Resources | When Artists Write Code

This is a follow up to my article reviewing the exhibit at Artechouse DC.

If you’re interested in popular creative coding tools like Processing I suspect the artists behind the Artechouse DC exhibit used, you should absolutely check out some of the links below.

While I certainly can’t guarantee that learning Processing will ever get you selected to exhibit at Artechouse, you will come away with a better understanding of how some of these art exhibits are formed. There’s also tools like Arduino which I am sure were involved at some point.

The main Processing website. Lots of examples, documentation, and tutorials for getting started with Processing, even if you’re new to code. Processing uses a very simple language based on Python that is quite easy to learn. There are also examples that allow artists to experiment with to start creating generative art quite quickly.

A community for Processing developers, where its super easy to share your work and create a portfolio. If you’re looking for inspiration or source code to experiment with to see what sort of changes happen, this is a good place to go.

Tons of examples of Processing in action, with code snippets alongside the result. All the exercises and examples are accessible online for free, with the code displayed alongside. There are also comments in the examples explaining parts of the code. It’s easy enough to copy and paste it into your IDE and make changes if you want to experiment more.

Open Frameworks is a open sourced, C++ based toolkit for creative coding. As they say in the about section, “Our intended audience are folks using computers for creative, artistic expression, and who would like low level access to the data inside of media in order manipulate, analyze or explore.” Might be a little harder to get started if you don’t have any coding background, however.

One of my personal favorite Processing artists, who also experiments with artificial intelligence and machine learning to create amazing images. Although he sometimes uses Processing experiments to inspire his paintings versus the other way around, I find looking at his work always inspires me.

Arduino boards are often used in tandem with Processing, because they allow for users to actually interact with the art. They are like miniature computers that can be setup with whatever inputs and outputs your project needs.

Did you find any of the above links helpful? Did you think the cherry blossom exhibit was better? Are you already exhibiting in spaces like Artechouse, or hope to in the future? I’d love to hear from you about your own experiences with tools like Processing and Arduino, and what you think of where the world of creative expression with technology is going. Leave your comments below!