运河船模拟器
Canal Boat Simulator

原始链接: https://jacobfilipp.com/boat/

在Jura威士忌的加持下,受英国运河纪录片的启发,作者开启了一场醉酒的“粗犷运河船只游戏”创作之旅。尽管缺乏3D建模技能,作者还是一头扎进了开发中,最初在使用Paint 3D时苦苦挣扎。但作者毫不气馁,转而拥抱Godot引擎,并拉上了一个程序员朋友帮忙。 两个月的时间里,他们利用晚上时间克服了将游戏导出到HTML5以适应移动端的挑战。这款3分钟的游戏,“运河大屠杀”(Canal Carnage),成为了他们每分钟一个月辛勤劳动的结晶。作者强调了Godot引擎的强大和乐趣,并着重指出为了享受过程而进行微调的重要性。他们学会了将核心游戏性置于完美之上,甚至使用了ChatGPT来处理复杂的船只机制,即便这意味着要跳过底层物理引擎的构建。作者甚至还精心挑选了一系列“盗版”Carpenter Brut曲目和类似《如龙》系列的主题音乐作为游戏音轨。作者最后总结道,这是一个任何人都能完成的激情项目!

Hacker News users are enjoying "Canal Boat Simulator," a simple game where you navigate a narrowboat. Many appreciate its nostalgic, indie-game feel and the fun of building something for the sake of it. Some users with real-life canal boat experience provided feedback on the physics and realism (or lack thereof, including surprise tsunamis!). Despite some criticisms about control and a "start" instruction that looks like a non-functional button, the game is considered surprisingly fun and addictive. Comments highlight the joy of carefree gaming creativity and the game's ability to evoke memories of older, quirkier online games. Suggestions for improvements include more realistic physics, scenarios, and even a geo-guessing aspect. Overall, the consensus is positive, with users sharing the game with others and praising the developer's work.
相关文章

原文

Dear Reader,

Alcohol is a hell of a drug.

It’s night. I’m sitting and drinking my Jura. Relaxing with an episode of “Narrow Escapes“, a show life on Britain’s inland canals.

Tonight’s feature is about a pair of young canal boaters: Amy is a game streamer and Wes is a game level designer.

Everything is going swimmingly until Wes says1:

So I goes PFFFFFFTTT I BET ITS GOING TO BE A GRITTY CANAL BOAT GAME!!!!

And… and then…

And then in my addled state I go

🧠 Pff ff ff t, I bet… it’s going to be a… gritty… canal boat game. 🧠

Days later, the idea stuck and wouldn’t leave… so I went and made the game!

I’ll tell you all about it. But first you gotta play the game. Crank the volume up. Go on. I’ll wait until you finish:

Now, you can’t judge the game harshly because it is a prototype.2 For the full epic story of making the game, read on:

Previously, I created a stunning true-life 3D simulation of life on a Victorian London street. So I had mastered a game engine and could make the boat game real quick.

Pictured: “Fancy an oyster, ‘guvna?” – an uncanny simulation of London street life

I figured “how hard could it be?”

Just steal some aerial photos of canals, slap invisible 3D walls on the canal’s sides so the boat bumps against them, make the camera follow the player from above and 💲💲💲💲💲💲’yknow?

Except, I don’t know how to use actual 3D modeling software.

Nevermind. There must be a simple way to create those 3D canal borders. Apparently “Paint 3D” is great for beginners like me. Oh, what’s that? It’s been discontinued you say? Well, I’ll go on a quest to download an old version and what is this extruded sausage nonsense?

Pictured: Paint 3D’s extruded sausage nonsense

It’s fine. No worries. Maybe we’ll represent the borders of the canal with these things called heightmaps so it’ll kinda make the walls happen on their own?

Ummm… no?

Well, lets try a whole bunch of things and oh Sweet Jesus of Nazereth:

So, Dear Reader, how far do you think that one should go for a joke game conceived in an addled state of mind?

Pretty flippin’ far I tell you.

I had to get serious.
Learn to develop with a Real Game Engine™.
Man up.
Hit the gym.

I reviewed a variety of engines and decided to use a popular engine called Godot. I called up my developer friend Chad G. Petey and we set to work on this gritty canal extravaganza.

From start to finish, the whole game took 2 months and 22 days to finish. This includes the “false start” with the CopperLicht engine that I knew from before. Working in the evenings for about 2 hours a day.

Getting the thing to just function as a Web game on mobile took a lot of tweaking. Getting it to work well took even more. This part was so challenging that I wrote a separate article with all the tricks for exporting a Godot game to HTML5 on mobile.

The game itself takes just 3 minutes to complete3. I think of it as my month-a-minute game as each minute of gameplay took a month of dev.

What I learned as a game tycoon

  • I am astonished at how powerful and straightforward the Godot game engine is. In my career, I have seen the perfection that is Excel and Salesforce.com. But I didn’t realize that other industries also have heavyweight software that’s just a pleasure to use.
  • The “fun” element makes game development different from other kinds of programming. The game code might “technically work” but that doesn’t accomplish the mission of being fun. You have to keep playing and perfecting an enjoyable formula. There’s real challenge and magic here.
  • Once you get one game level working, with the core dynamics dialed-in to be fun, building out additional levels feels very simple.
  • You can get away with a lot of mistakes if you keep the player moving fast and focused on a certain part of the screen. For example, Canal Carnage is missing portions of the background, but you wouldn’t notice because you’re focused on escaping the tsunami. You’re not looking around at leisure.
  • You can keep polishing a game forever. I’d like to improve the animation of the explosions, move the health meter next to the player, add a leaderboard + timer for calculating how fast you completed a level, add mobile boat enemies, create a proper splash screen, and and and and… all of these tweaks take time and push out the launch. You need to be disciplined and stop yourself.
  • It was very difficult to publish the game as a mobile-friendly HTML5 game. This drove home that you really need to know the internals of your game engine. For game developers, this presents a real barrier to switching engines.
  • I gained an added appreciation for the work of artists. For example, while finishing up the game, I watched Alien: Romulus and I could spot certain tricks that the director/writers used for heightening tension. These elements were completely unnecessary to the story, but I could see them using the same cheap tricks that I used to heighten urgency. (“There’s a xenomorph attacking her in the elevator shaft! Oh no, there’s also a face-hugger that joined the fight!!! Now she’s really done for!”)
  • ChatGPT set me up with all the boat dynamics, vector velocity, rotation, friction from water resistance, applying drift as an additional vector… I wouldn’t be able to figure this all out myself by reading tutorials (unless there’s literally a “boat controls” tutorial). I moved very fast. Also, by using ChatGPT I missed out on learning the underlying physics of the game. But, frankly, I don’t have any interest in that.
  • When ChatGPT fails, it looks like the conversation going around and around in circles. It takes some time to notice when this is happening. At that point, Youtube videos become invaluable. I especially benefited from the videos Godot particle emitter tutorial and Godot Control Node (UI) masterclass.
  • If you want to be the best at something, just pick a weird niche that nobody would ever want to build something in. Like gritty canal boat games. I’m truly #1 in this space. For more “useful” life advice like this, subscribe to my RSS feed.
  • I vibe-coded a game in 3 months that an experienced developer could’ve made in a weekend. Take from that what you will.
  • Both my friend Rafal and I were surprised that the child-oriented Kidscancode Godot tutorials had genuinely valuable information that was unavailable elsewhere.

Game Soundtrack

Here is are the music credits for all the scenes in the game4:

Level 1

The track “Turbokiller”, shamefully stolen from Carpenter Brut

Level 2

Klasey Jones – Romanova

Smoke break at the canal locks

Level 4

CRYPT – PSYCHO [INSTRUMENTAL]

Level 4, redone on massive amounts of drugs

Hannah Laing – Poppin’

Interlude at the boat dock

Midnight Premiere – Your gaze

Background music in Yakuza nightclub where you lock eyes with a new, younger boat

Scene where the hot new boat dumps you because of your hero complex. You limp back to your old battle-boat.

Danz CM – I don’t need a hero

Scene where your old boat takes you back. (Jeez, you better not blow it again. You’re a real piece of work.)

Funny Falentine – Together

Boss battle where you have to defeat L.T.C. Rolt on the bridge of the canal boat. He’s dressed head-to-toe in Gucci and you a scrub.

Game victory celebration music

Dylarama – Comme des dominos

Credits roll – you and your canal boat are relaxing in the sauna

Credits

Closing words

Want to play a better canal boat game in glorious 3D?
Try Narrowboat Simulator by Michael Donning!


联系我们 contact @ memedata.com