Entries for tag "ggj", ordered from most recent. Entry count: 10.
# Impressions After Global Game Jam 2023
Tue
14
Feb 2023
I usually write technical blog posts to educate readers on specific topics. However, this time, I wanted to share something more personal - my experience after participating in the Global Game Jam 2023. The event took place from February 3 to 5, 2023, but only now did I find the time to write this post, as I spent a week in Munich attending the Vulkanised conference right after GGJ.
For those unfamiliar with the Global Game Jam, it's a worldwide event where participants come together to create games for fun. Unlike Ludum Dare, GGJ is not just an online/remote event. It's an opportunity to spend the weekend in person at one of many sites around the world and develop a game based on a specific, globally-announced theme within the constrained time limit. In Poland alone, there were eight sites organized in major cities. I attended PolyJam 2023 (GGJ entry, FB event), which was organized by Koło Naukowe Twórców Gier Polygon, a game development interest group at Warsaw University of Technology that I still regularly attend even though I'm no longer a student.
The theme announced for this year’s GGJ was “roots”. A theme is something that games made during the jam should be related to, or at least be inspired by. But the theme can be interpreted freely. Roots of trees and other plants are the first association that comes to mind and that most teams followed (including us), but others are also possible, e.g. a heritage like genes or culture inherited from parents and ancestors, something about indigenous people, or even… calculating mathematical square root.
Our jam site was large and well organized. KNTG Polygon has long experience in organizing such events, after many years of doing local site of GGJ, as well as their custom Slavic Game Jam. Thanks to the work of volunteers and money from sponsors, a very low entry fee ensured not only space, access to the power and Internet but also unlimited coffee, other drinks, sweets, and full catering. GGJ website says there were 124 jammers registered on the site. Although GGJ as a whole isn’t a competition, there are no winners or prizes, our local site featured a competition.
When competitions are made on game jams, there are 2 general ways of doing them:
If a team wants to win, they should take different approaches depending on this. In option 1, the game is played only by the authors, so it is enough to prepare a good-looking show for a couple of minutes. However, they need to think beforehand about what to say and how to play their game to impress people. Option 2 is essentially like preparing a booth on a gaming expo – all about attracting people, showing and explaining the game to them, and making sure the build works fine and looks playable during these few minutes when other people play it. PolyJam 2023 went for option 1. Every team had 3 minutes to present their game on stage. There were over 40 different teams, but the presentation was well organized and went smoothly.
Back to my presence there… I didn’t take part in a game jam for 2 years, since before COVID. I wanted to go there to check if I still remember how to program :) Of course I work with code in my everyday job, but quickly hacking a game jam game, which is essentially like a prototype, is something different from writing production-quality code at work. The small 2D game we made is: Roots of Life and Death. Our team was 3 people: Michał Rudnicki “Mildanach” as graphics artist, Bartek Dramczyk “Voyager” who made music and sound effects, and myself as the programmer. We’ve developed everything on a public GitHub repository. I also hosted web version of the game that can be played online. The game is about resource management – by creating new nodes (left mouse button click) and transferring resources between them (left mouse button drag&drop), player can expand the system of underground roots, create new flowers to gather more sun at the top of the map and acquire more water at the bottom. Enemy plant is playing on the other side of the screen according to the same rules, controlled by the AI.
I know the game is not finished, not very dynamic or enjoyable. What is important to me is the way we made it. In past game jams I used different technologies, ranging from a custom engine in C++, Cocos2d-x library, to Unity and Unreal Engine, which are the most popular these days. I must admit I don’t know Unity or UE too well – not as much as I wish I knew, but for this year’s GGJ I decided to try something new: I used Cocos Creator. This is a Chinese game engine that looks somewhat similarly to Unity, provides a convenient editor, features a component-based scene graph, and supports all an indie game may need (2D and 3D graphics, collisions and physics simulation, UI, sound, etc.).
The programming language used in it is TypeScript. I didn’t know either Cocos Creator or TypeScript before. Having only basic knowledge of JavaScript, I started learning them 2 weeks before the jam. I enjoyed it a lot. It is long time since I learned a new programming language, while it is always a very mind-expanding experience. I like the way TypeScript introduces strong typing into JavaScript, which is by nature a very dynamic scripting language. For example, let a: string|number;
defines a variable which can contain either string or numeric values, while let eventType: 'mouseDown'|'mouseUp';
defines a variable that can hold only a string with one of these two specific values. I was learning just from a first TypeScript tutorial I found on the Internet and the official TypeScript cheat sheets.
With our game, we didn’t win the competition at our site and we were far from winning, but this wasn’t the point. I am still happy about our performance. Things that went well:
What went wrong:
Overall, participation in Global Game Jam was a fun experience. I can recommend it to everyone who likes games and feels a need to do something creative. There is no need to have a team beforehand. Some people just come and team up with freshly meet people, some make their games alone as a 1-person team. I even met some people who came but didn’t plan to make any game! They just wanted to spend this time among nice, like-minded people and do something creative, e.g. to draw new things to their personal portfolio.
Comments | #javascript #events #competitions #ggj Share
# Global Game Jam 2019 - my impressions
Thu
31
Jan 2019
Last weekend the 2019 edition of Global Game Jam took place - a worldwide event where teams od developers gather in different sites all around the world to make games during two days and two nights. There was a large site in my city (Warsaw) - PolyJam, but I decided to go to Gdańsk to participate it their local site called Hackerspace Game Jam together with my friends.
Theme this year was "what home means to you". As always, participants interpreted it very differently. Those who have families associated home with all kinds of troubles caused by the other residents. Pooplers - the game I liked the most - is about babies crawling around the house and pooping competitively to cover as much surface as possible with their specific color, while avoiding the mother :) Home Alone: Cat edition is about a cat that can destroy and drop stuff from the shelves, all in first person perspective. Kapeć Defender is about a man who throws slipper (pol. "kapeć") at the wife and other people to be able to just sit and watch TV. There were more sci-fi settings as well. I liked the game Gwiezdni Somsiedzi a lot. It is the only one with multiplayer over network. Players have to control satellites flying in space, catch asteroids and throw them at the other players. Another space game was Glop where players have to cooperatively control various devices on the surface of a planet to make it fly, as well as shoot at incoming obstacles.
When it comes to technology, most teams used Unity engine. Some used JavaScript with some game framework. There was just 1 VR game. Many games included multiplayer on a single computer using gamepads, one included networked multiplayer.
Our team was a group of friends from the demoscene - 2 ex-Intel C++ developers and 2 DevOps currently working in a bank. Unfortunately we had no graphics artists. Although I would prefer to use Unity or Unreal Engine these days, we eventually decided to go the hard way and code in C++ using dxfw - the old framework developed by Krzysiek K., based on Direct3D 9. I had to remind myself this old technology before the jam, including all these D3DRS_
fixed-function pipeline states and D3DX math library. By the way: If the last version of DirectX SDK for DX9 was released in June 2010, can we already consider it a retro platform, along with Atari and Amiga? ;)
We used FMOD library for playing sound and music and Gainput for handling input from gamepads. We started from having a ray-traced sphere, so we had to code all the game logic and rendering from scratch, including displaying characters, UI, collisions, etc. We've developed some of the logic in C++ and some in Squirrel, because we had this scripting language already integrated with the framework. I had no previous experience with Squirrel, so I had to learn it very quickly. After going through the documentation, I concluded that I love it! It looks like a great scripting language for simple applications. It's not perfect, e.g. it lacks vector and matrix types so necessary in game development (just like pretty much every other programming language except HLSL/GLSL), but I like its simplicity and syntax. It is very similar to Lua in its overall philosophy - dynamically typed, object oriented, and based on key-value arrays. The syntax is not that weird though. It seems to follow the "principle of least astonishment" - it's very similar to C++, arrays are indexed from 0, plus ending statements with a semicolon is optional - end of line also works.
Participating in an event such as GGJ is always an adventure and an opportunity for many new experiences - much better than just sitting on the Internet at home. During this jam I not only learned Squirrel as a new programming language, but I've also heard what is it like to work as a programmer at a bank, I've registered on Asana (a web service for organizing TODO lists, just like Trello which I used before), and of course I had an opportunity to practice quick and dirty programming, as opposed to code carefully thought out and tested, like it has to be done in a regular job.
Finally, the game we've made is here: LazerBugz. It is a twin-stick shooter happening on a spherical surface of a planet. The "home" is the cosmic base that you have to defend while shooting at alien bugs and going out to gather randomly placed gems. It supports local co-op for any number of players using Xbox gamepads or keyboard and mouse. Some screenshots and a photo of people playing our game:
There was a competition on our site. We didn't take any of the first 3 places. We just got mention among the games who received a good number of votes. The game that won was Clash of T-Rexes - kind of Pong with two dinosaurs standing on two planets.
Official photo gallery from the event: Hackerspace Game Jam 2019
Comments | #productions #competitions #ggj #events Share
# Global Game Jam 2016 - Postmortem of our project
Tue
02
Feb 2016
Last weekend, this year's edition of Global Game Jam took place all around the world. Just like in previous years, I participated in 3City Game Jam - a site in Gdańsk, Poland. It is a big one, with over 150 participants, organized by Playsoft company in their office. Theme this year was "Ritual". Regarding technology, Unity was most popular in our site, with just few games using something else: Unreal Engine, HTML5, GameMaker and C++ with SFML.
We have also used Unity. Our team consisted of 3 programmers. Here you can see our game: Bloody Eclipse, but it is far from being finished or playable. Honestly speaking, in my opinion the project on this jam went exceptionally poor. We didn't even make it to the top 10 best voted games to be presented on a big screen. That's why I'd like to share some conclusions, for you as well as for my future self.
First, it were not environmental issues that caused any problems. We all had our hardware and software set up before the jam, with Unity, Visual Studio, Git client and other tools already in place. Internet worked perfectly with transfer up to 80 Mbps in both directions. Second, it was not a lack of knowledge or skills. Our work in Unity went quite smoothly. We could deal with C#, 3D math and Git pretty well. Third, it was not because of the lack of artists in our team. Sure, graphics is very important for overall experience, but the guys who made The Bad Ritual also didn't have artists in their team and they somehow found a consistent visual style for their game, made it fun and pretty. There are many possibilities to make minimalistic and yet visually pleasant game, just like there are many free assets ready to use in Unity Asset Store.
The biggest thing that was missing in our team was management/leadership. I deliberately don't call it planning or design, because in a hectic environment like a game jam it's not enough to design the game at the beginning and then just execute. Things are changing fast, new ideas come to mind, time is running fast and new obstacles appear (like bugs or difficulties in development), so someone should have an authority to decide what to do next, keep the list of tasks "TODO" and update it constantly with priorities assigned so the most important things are done first. Noone took this role in our team. As the result, we've spent almost whole Saturday developing and polishing algorithm for enemy movement and around half an hour brainstorming and then voting for the game title, while our game used untextured, placeholder cubes and spheres as models until the very end :)
Conclusion: It's not enough to know how to code. It's also important to decide WHAT to code so that best possible result can be achieved with limited time and resources.
But the Global Game Jam as a whole is not a contest (despite our site actually was one, with PlayStation 4 for each team member as first prize) but just a fun, creative event. Despite all the problem we had I think it was fun. I had yet another opportunity to use Unity, which is a great technology. I realized I can handle Git pretty well, despite I don't feel like an expert knowing about "rebase" and such advanced stuff. I realized I still remember how to use the so much unintuitive inteface of Blender, which I learned many years ago to use in my master thesis. I could play many interesting games created on this jam, like my favorite: Witch Rite (it took 3rd place) or the one that won the contest: Acolytes: Ritual of Ascension. And finally, I've met many interesting people who do all sorts of crazy stuff, from running a company that produces medical software and hardware, to visiting escepe rooms and practicing celtic dances :)
Comments | #ggj #competitions #productions Share
# Global Game Jam 2015 - Our game: ComicsTale
Tue
27
Jan 2015
Last weekend a big event took place - Global Game Jam. As every year, thousands of people around the world had fun while making a game in 48 hours. I was in a jam site 3City Game Jam (link to site at globalgamejam.org) in Gdańsk, Poland, organized in Olivia Business Center by Playsoft Games. With 163 registered jammes, it was one of the biggest in the world (actually 24th out of 518 sites)!
Theme this year was a question: "What do we do now?" so we came up with an idea for a game that looks like a comics, where player has to choose where to click. Our team was:
Developers: Leonardo Kasperavičius, Adam Sawicki
2d artist: Ryszard Niedzielski
Game designer & producing: Frederic Raducki
And here is our game: ComicsTale (source code on GitHub). It is made in Unity (as most of the games), with 2D graphics and with mobile platforms in mind. In the voting on 3City Game Jam, we took 4th place out of around 36.
comicstales_win.zip - Windows Binary
comictales.apk - Android Binary
comictales_mac.zip - Mac Binary
It was fun to make game in a weekend. People were nice, atmosphere was great and there was free pizza! I recommend participating in Global Game Jam to anyone interested in game development. It's much more interesting than coding alone at home and submitting games to some virtual, online competitions.
Comments | #ggj #competitions #productions Share
# Global Game Jam 2014
Sun
02
Feb 2014
Last time I wrote about our game Ball-B, and today I'd like to say few words about the Global Game Jam in general. For those of you who don't know: It is a worldwide one-weekend event about making games. But it's not just a virtual event where people stay at home and communicate via the Internet. Different organizations around the world share their place so people come to meet and work together as teams. There were 6 sites in Poland. In Warsaw for example, PolyJam 2014 was organized by Poloygon interest group in Warsaw University of Technology. Our site in Gdańsk, called 3city Game Jam (see homepage, entry on globalgamejam.org, Facebook page), was in the office of gamedev studio Playsoft. It was the biggest site in Poland and - according to page Jam Sites by Size - 38th in the world our of 488 with 111 participants. And there was also a waitlist of those who didn't register on time because of limited capacity of the office!
Organizers encouraged us to use Chronolapse to record a time-lapse video from screenshots taken from our desktops in the background. That's an interesting program - I didn't know it before. Unfortunately it didn't work after I connected external monitor to my laptop (despite it claims it supports dual monitor), so finally I didn't use it. They also recorded a time-lapse video from all 48 hours in the office, but I guess it isn't posted on the Internet yet.
The theme this year was a sentence "We don't see things as they are, we see them as we are." It's so general it could be interpreted quite freely, but many games were about changing a point of view by e.g. switching between different types of characters or some references to psychology. In our site the event had a form of a competition. Voting was using the system just as it's usually done on Warsztat compos and IGK conference - everyone had to choose 3 games (except his own) and give one of them 3 points, one - 2 one - 1. My favourite games were:
While the winners were:
Comments | #competitions #events #ggj Share
# Ball-B - Our Game at Global Game Jam 2014
Thu
30
Jan 2014
Here is the game we made during this year's Global Game Jam. It's called Ball-B. The goal is to defend the base at the center of the arena. You are rolling a physically simulated ball (using arrow keys or WSAD) of one of 5 kinds, each one (except the green one) having a special ability activated with Space. ESC key shows menu.
The game is made in Unity, so it works on the web page (if you have Unity Web Player installed) and can be build for multiple desktop as well as mobile platforms.
Windows Binary: Ball_B_Windows.zip (8.78 MB)
Source Code: Ball_B_Source.zip (20.4 MB)
See also Ball-B at globalgamejam.org
One week before the jam I decided to learn Unity a little bit instead of make a game using custom C++ technology, as I always did before. Arek, who is doing 2D graphics at work, also a week ago decided to learn making 3D graphics. So it was a new and interesting experience for both of us. We made our game in same team as last year, only without Klamacz (who now lives in Czech Rapublic and works in Bohemia Inteactive). Our roles were:
I was the only programmer in the team and I didn't try to be the leader of the team or a designer, so I could say the game was artist-driven - most of the time developed considering how things should look like. Which is a good approach. Of course not everything went right and there are many things we could have done better. But it was fun to participate. In the competition at our site we scored 3rd place.
Comments | #productions #events #competitions #ggj Share
# Global Game Jam 2014 - Next Weekend
Sat
18
Jan 2014
Next weekend - 24-26 January 2014 - there will be next edition of Global Game Jam - probably the biggest game development competition in the world. Well, it's not actually a competition. But it's about creating games with given theme, in teams, in 48 hours. Any technology can be used - programming languages like C++, game engines like Unity. You can even make a board game!
May sites around the world host this event. Sites registered in Poland this year will be in: Łódź, Poznań, Cieszyn, Warszawa, Kraków and Gdańsk. The one in my city - Gdańsk - is called 3City Game Jam and it's organized by Playsoft Games in their office, just like the year before.
It's always fun to do something creative together, so I really encourage to leave the work earlier next Friday (or skip some lessons) and go spend that weekend programming/drawing/modelling/designing/drinking coffee and participating in this event. Last year we created a game called Octovirus :)
Comments | #events #competitions #ggj Share
# Global Game Jam 2013 - Our Game Octovirus
Sun
27
Jan 2013
Global Game Jam 2013 came to an end. The local event in Gdańsk, Poland - 3city Game Jam (Facebook page) was organized by playsoft gamedev company in their office. During the jam, a lot was happening on Twitter in hashtag #ggj13 and #3citygamejam. Here are my several photos of the event. The theme this year was "sound of a heartbeat".
I joined a team of 5 playsoft employees. Together we created a 2D game called "Octovirus" about an actopus-like virus swimming inside veins, collecting blood cells and avoiding evil bacteria. We made all the graphics, including fonts and even sounds during the event. As for the code, there were two of us programmers. We developed in Windows, using Visual C++ 2010 Express. We used Cocos2d-x framework and Box2D for physics. I didn't know both of these libraries before GGJ, so I had to learn the basics quickly :)
The game works on Windows using OpenGL, but it's also portable to Android and iOS. Here is Windows binary: Octovirus.zip (6.09 MB).