summaryrefslogtreecommitdiff
path: root/BulletLabRemix/index.html
blob: fac7a1b99d60c6e2edefa3baaa260c5fdb679a00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Chrisoft::BulletLabRemix</title>
<link rel=stylesheet href='../common.css' type='text/css'>
<style type="text/css">
body
{
	color: #3F3;
	background: #0A0A0A;
}
div.TPartitle
{
	margin-top: 0.5em;
	font-size: 1.5em;
	font-weight: bold;
}
</style>
</head>
<body>
<table border="0" style="width:66%;margin:auto;">
  <tr>
    <td class="TText">
    <span style="text-align:left;font-size:2em;"><a href="../">Chrisoft</a>::<a href="./">Bullet Lab Remix</a></span>
    <br>
    <span style="float:right;">Meet the power of open source!</span></td>
  </tr>
  <tr>
    <td class="TText"><div class="TPartitle">Notice</div><br>
    All development of Bullet Lab Remix ceased in 2017, and as of August 2023 there's no plan to resume. In fact it's
    probably never going to resume unless I literally have a brain tumor.
  </tr>
  <tr>
    <td class="TText"><div class="TPartitle">Overview</div><br>
      <img src="./scrot/BLRIII_Menu.png" width="480" height="360" alt="BLRIII menu screenshot"><br>
      Bullet Lab Remix
    is an open source game project and an attempt to further develop <a href="https://github.com/styxtwo">styxtwo's</a>
    <a href="http://www.funny-games.biz/bullet-lab.html">BulletLAB</a>
    <a href="http://www.gameboltz.com/game/337/bulletlab">(Original link, dead)</a>.
    Level design is heavily influenced by
    <a href="http://www16.big.or.jp/~zun/">the Touhou Project</a>. However, this is a strange game with its own style.<br>
    (Surprisingly, this game has native Linux support!)</td>
  </tr>
  <tr>
   <td class="TText"><div class="TPartitle">System Requirements</div><br>
   Bullet Lab Remix supports almost all modern i386/amd64 computers. See Readme in the game folder for details.
   </td>
  </tr>
  <tr>
    <td class="TText"><div class="TPartitle">Development Status</div><br>
    [20150912] Bullet Lab Remix III is now in its main development phase.<br>
    [20150614] Bullet Lab Remix III first development phase finished... <s>The whole development folder can be found <a href="#">here</a>.</s><br>
    [20150217] Bullet Lab Remix II 1.0.0-0 completed! Get source code <a href="https://github.com/chirs241097/bullet-lab-remix">Here</a>!<br>
    [20130828] Bullet Lab Remix I 1.0.3 (stable release) Released!
    </td>
  </tr>
  <tr>
    <td class="TText"><div class="TPartitle">Distribution</div><br>
        <a href="https://filestorage.chrisoft.org/blr/">Click here</a> to visit the download folder. All versions -- from BLR I o BLR III Test Bed
        are there, including the original modded flash version.<br>
        To get the source code, please check out the
        <a href="https://cgit.chrisoft.org/bullet-lab-remix.git/">project git repository</a>. I unfortunately no longer
        have the sources for the modded flash version, but any decent Flash decompiler should be helpful here.
    </td>
  </tr>
  <tr>
    <td class="TText"><div class="TPartitle">Screen Shots</div><br>
      View Screen Shots <a href="./scrot.html">Here</a> (not maintained and outdated).</td>
  </tr>
  <tr>
    <td class="TText"><div class="TPartitle">Untold back story of the project</div><br>
    <p>
      The year was 2012. I was a high school freshman deeply sucked into the Touhou rabbit hole. (yeah, yeah, I know. Weeb and nerd stuff. But calling me
      a weeb isn't appropriate since I myself is Asian...) One day when I was randomly roaming on the Internet I noticed the game "BulletLAB". I played
      it for a bit, and thanks to my Touhou addiction I cleared the entire game in medium difficulty on the same day. It turns out if you are accustomed
      to Touhou-level bullet hell (well, I wasn't even that good back then, only playing the normal difficulty. And it was all down hill from there),
      this game is pretty much a walk in the park.
    </p>
    <p>
      "This game needs some desperate help," so I thought. So I busted out my flash decompiler and adobe flash (both pirated, of course). Before long a
      modded version came into being. Basically I buffed the sh*t out of certain levels and, cough cough, totally play tested all of them (not the truth
      lol). I also removed momentum from player movement completely since that's a completely foreign concept to Touhou players.
    </p>
    <p>
      But soon I found myself strangled by the poor performance of Flash. The game quickly slows down to a crawl when there's too many bullets on screen.
      I had to move on to something other than flash.
    </p>
    <p>
      Coincidentally I was playing another shooter game called "Beat Hazard" at the time. I learned about the 2D game engine
      <a href="https://web.archive.org/web/20120918044348/http://hge.relishgames.com/">"HGE"</a> by going through its game files.
      Soon enough I started rewriting the entire game using HGE and C++.
    </p>
    <p>
      By the following year (early 2013), the first iteration of Bullet Lab Remix entered maturity. Thanks to the hardware accelerated nature of HGE,
      it ran at a solid 1000 FPS on my crappy laptop. And no - the code does not look good, thanks to my competitive programming entrenched ass.
    </p>
    <p>
      At around the same time, I started daily driving Linux, which gave me the motivation to port the game to Linux. I found out
      <a href="https://icculus.org/hge-unix/">hge-unix</a>, a port to hge to any platform supported by SDL. Without much trouble, a Linux port was soon
      released. Unfortunately I didn't learn how to write a makefile until years later, so for quite a long time these games are built with a shell
      script.
    </p>
    <p>
      Soon after I started the development of Bullet Lab Remix II, this time almost exclusively done on Linux. I took a much more liberal approach
      designing the levels, that is, completely unhinged from the original game and taking direct inspiration from Touhou. Some levels are even just
      blatant rip-off of Touhou spell cards. The game took shape fairly quickly and entered finalizing phase in 2014, at which point however I got
      stuck in trying to come up with in-game music for it. Untalented and unfamiliar with music production tool, it wasn't an easy task for me back
      then.
    </p>
    <p>
      While I was busy worrying about the music, I also ported HGE to DirectX 9 on Windows, which turned out to be a trivial task as DirectX 9 kept
      almost everything from DirectX 8 and is more or less a find-and-replace job. I also started experimenting with extending the feature set of HGE,
      giving it basic support for rendering 3D-transformed sprites and 3D objects, as well as truetype font rendering. With these new features I started
      working on a new secret project called BLRScriptTestBed in which I tested all these new library features and laid down the foundation
      of what was supposed to be the level scripting engine used in BLR III.
    </p>
    <p>
      But time was merciless. Before I could come up with a single track of my own, my free time is almost up -- it was the final year of high school
      and I'm soon facing the National College Entrance Examination (more notoriously known as "Gaokao"). I had no choice but to give BLR II a rushed
      finish. I pulled a few (2, to be precise) tracks from modarchive.org, chopped them up as the tracks, and called it done.
    </p>
    <p>
      In the final year of my high school, during which I had to actually attend classes instead of doing my competitive programming nonsense, I was
      planning for the third game non-stop. I had an entire notebook that contains nothing but level design, code design and supposed story line for
      BLR III. All that effort turned out to be in vain though, because the third game, as you already know, is never finished.
    </p>
    <p>
      When I started college in 2015, development of BLR III briefly resumed for a bit. Curiously the first thing I decided to do is to fork HGE, perhaps
      because I decided that I've outgrown this purely 2D-oriented engine. The original fork wasn't too much of a divergence from the original at all.
      I just unified the original HGE code base and hge-unix's code base, merged my added 3D and truetype functionalities, and called it my fork.
      Later the fork was given a major API overhaul, migrated to GLFW instead of SDL and rewritten in OpenGL 3.2, at which point I gave it the name
      "SMELT".
    </p>
    <p>
      Development continued fairly smoothly until late December 2015, when I decided I need to start a new project (now known as QMidiPlayer). I was super
      passionate about this new project, so passionate that I already have a prototype with 3D MIDI visualization by mid January 2016 (which is also
      implemented using SMELT). This new project quickly took precedence over everything about BLR III. With that and my decreasing interest in danmaku
      (or bullet hell) type games in general, unsurprisingly, BLR was neglected to its final demise.
    </p>
    <p>
      If you ask me if I've ever got anything out of this project, I'd answer that with a definite yes, despite that there are few people outside of my
      tiny circle that know the existence of this game. Besides the priceless experience dealing with accelerated graphics and a few other programming
      tricks, the most significant self-discovery from the project is that ... I should probably never work on a game on my own again.
    </p>
    <p>
      Ah yes I forgot to apologize for the terrible l33t haxxor style of the page. Average 16yo behavior.
    </p>
  </tr>
  <tr>
    <td colspan="4" class="TText"><div align="center">Copyright Chrisoft 2015&nbsp;&nbsp;<a href="../about.html">About</a>&nbsp;&nbsp;Site Map</div></td>
  </tr>
</table>
</div>
<div class="floatingr">
	<script type="text/javascript">
		function changeImage(img){
		document.getElementById('aqt').src=img;
		}
	</script>
	<img src="../koishi_norm.png" alt="" width="320" id="aqt" onmouseover="changeImage('../koishi_hovr.png')" onmouseout="changeImage('../koishi_norm.png')" onclick="this.remove();">
</div>
</body>
</html>