#PixelPocalypse
Explore tagged Tumblr posts
Text
THE INTERNET’S ON LIFE SUPPORT BECAUSE OF THIS SALE. ⚡ BOOKS, GAMES & ART – 90% OFF (DOCTORS HATE US)
GRAB NOW
#THE INTERNET’S ON LIFE SUPPORT BECAUSE OF THIS SALE. ⚡ BOOKS#GAMES & ART – 90% OFF (DOCTORS HATE US)#GRAB NOW CLICK ko-fi.com/blase98248/shop#FlashFamine#AudiobookApocalypse#PDFPurge#RetroRogue#ArtAnarchy#DesignDemolition#CashCult#FOMOFlood#GamingGutter#BookTokArmageddon#SelloutSwarm#ChaosCoin#BrokeButViral#ArtForCouchCents#ListenOrVanish#RetroRuthless#DesignDoomsday#ViralVandalism#PixelPocalypse#BizCardBlowout#EpicExitStrategy#ScrollOrRegret#OldButHype#ArtFluent#PDFParanoia#BookBrokeArmy#GameGlitchApocalypse
0 notes
Text
Tutorials Are Hard
Making tutorials for games is a real pain. Typically, by the time you start working on the tutorial you are already most of the way through the process of making the game. After all, it’s no good spending a lot of time making the tutorial only to find out that you will be changing the core rules of the game.
This leaves you with a difficult choice; should you write all new game classes with redundant code, or should you alter your existing game classes in order to add the tutorial behavior? The latter is usually better because if you simply copy and paste the required parts of your game, you will need to apply any updates or bug fixes to two different sets of classes; the tutorial ones and the regular ones.
Back when I was working on VoxelCity, I was determined to release the game by a specific date. As the date approached, I realized due to player feedback that I needed to have an interactive tutorial. Players do not learn your game by reading, but rather need to actively participate in the learning process in order to adequately learn how to play. As a result of the tight deadline, I butchered my GameScreen class, shoving the tutorial code into all the places it was needed. I successfully got things working and got the game released, but I always felt really bad about needing to add a large amount of code directly to the existing game in order to hack in the functionality.
For Castleparts, I did things differently. I planned for the need for a tutorial, and I made sure to have methods in the GameScreen class that I could override in order to handle the tutorial events. I posted the resulting TutorialGameScreen here. Go take a look:
http://codereview.stackexchange.com/questions/127706/game-tutorial-in-java
Today I got to reap the rewards of this approach when I went back to the tutorial and expanded it in order to have tutorials for the two other game modes available for play in Castleparts. Unfortunately I did have to modify the original GameScreen class a bit in order to get things to work perfectly. However, after doing that, adding new sections of the tutorial was as simple as adding new TutorialScreen classes for the other types of games I wanted to explain, and adding new enums for the different text I wanted to have for those other game types.
In short, my advice is to:
Extend your existing game rather than creating a whole separate game module just for the tutorial.
Extend your top level Game class with specialized Tutorial classes rather than hacking in the tutorial code. If you don’t, you will feel bad and your code will look like bad spaghetti.
Realize that no matter what you do, if your game is complex you will need to modify the original top level Game class in order to accomodate the tutorial.
Regarding the last point, Castleparts is a pretty complicated game with lots of different pieces working together to create the finished product. Something as small as not having the talking heads appear during the Tutorial mode was impossible to do without editing the existing GameScreen class. I also wanted to prevent the AI from making moves for the first parts of the tutorial, but let them resume making moves later.
The lesson here is that the more modular you make your code/game, and the more you use composition rather than inheritance, the easier it will be for you to combine things together in different ways when necessary. However, it is much better to actually finish the work than to endlessly try to figure out the best way to do things. When programming you always have to make a tradeoffs, and here the tradeoff was to go with a slightly less clean approach to save the huge amount of time it would take to re-code everything to be completely modular. The players of your game will not see the code, and they are only going to play the tutorial once anyway. If they play it at all!
To get regular updates about Castleparts, follow me on twitter:
https://twitter.com/pixelpocalypsed
0 notes
Note
Hey, were you pixilated and did the staff fix you ?
no. I appealed before the pixelization began because I was up all night panicking about being flagged, so I got up at like 7am and sent the form in. So I skirting being pixeled by like 3 hours. They unflagged me within 2 minutes of when I sent it. HOWEVER... 3 of my side blogs are still trapped in no man’s land, and I dont think they’re ever coming back. oops
9 notes
·
View notes